From fc938bc4bc775a3dd6d9238de5750cf4e1b638ce Mon Sep 17 00:00:00 2001
From: Pascal Bleser
Date: Thu, 28 Aug 2025 16:32:10 +0200
Subject: [PATCH] jmap: minor logging improvements
---
pkg/jmap/jmap_api.go | 2 +-
pkg/jmap/jmap_api_blob.go | 2 ++
pkg/jmap/jmap_client.go | 12 ++++++------
pkg/jmap/jmap_session.go | 6 +++---
4 files changed, 12 insertions(+), 10 deletions(-)
diff --git a/pkg/jmap/jmap_api.go b/pkg/jmap/jmap_api.go
index 97a6ec983b..8676e2f271 100644
--- a/pkg/jmap/jmap_api.go
+++ b/pkg/jmap/jmap_api.go
@@ -30,7 +30,7 @@ const (
logFetchBodies = "fetch-bodies"
logOffset = "offset"
logLimit = "limit"
- logApiUrl = "apiurl"
+ logEndpoint = "endpoint"
logDownloadUrl = "downloadurl"
logBlobId = "blobId"
logUploadUrl = "downloadurl"
diff --git a/pkg/jmap/jmap_api_blob.go b/pkg/jmap/jmap_api_blob.go
index e992ab3eb6..4c2a7779b3 100644
--- a/pkg/jmap/jmap_api_blob.go
+++ b/pkg/jmap/jmap_api_blob.go
@@ -55,6 +55,7 @@ type UploadedBlob struct {
}
func (j *Client) UploadBlobStream(accountId string, session *Session, ctx context.Context, logger *log.Logger, contentType string, body io.Reader) (UploadedBlob, Error) {
+ logger = log.From(logger.With().Str(logEndpoint, session.UploadEndpoint))
aid := session.BlobAccountId(accountId)
// TODO(pbleser-oc) use a library for proper URL template parsing
uploadUrl := strings.ReplaceAll(session.UploadUrlTemplate, "{accountId}", aid)
@@ -62,6 +63,7 @@ func (j *Client) UploadBlobStream(accountId string, session *Session, ctx contex
}
func (j *Client) DownloadBlobStream(accountId string, blobId string, name string, typ string, session *Session, ctx context.Context, logger *log.Logger) (*BlobDownload, Error) {
+ logger = log.From(logger.With().Str(logEndpoint, session.DownloadEndpoint))
aid := session.BlobAccountId(accountId)
// TODO(pbleser-oc) use a library for proper URL template parsing
downloadUrl := session.DownloadUrlTemplate
diff --git a/pkg/jmap/jmap_client.go b/pkg/jmap/jmap_client.go
index 3097b6e1c7..8531705240 100644
--- a/pkg/jmap/jmap_client.go
+++ b/pkg/jmap/jmap_client.go
@@ -19,9 +19,9 @@ func (j *Client) Close() error {
return j.api.Close()
}
-func NewClient(sessionClient SessionClient, api ApiClient, blob BlobClient) Client {
+func NewClient(session SessionClient, api ApiClient, blob BlobClient) Client {
return Client{
- session: sessionClient,
+ session: session,
api: api,
blob: blob,
sessionEventListeners: newEventListeners[SessionEventListener](),
@@ -47,16 +47,16 @@ func (j *Client) FetchSession(username string, logger *log.Logger) (Session, Err
return newSession(wk)
}
-func (j *Client) logger(accountId string, operation string, session *Session, logger *log.Logger) *log.Logger {
- l := logger.With().Str(logOperation, operation).Str(logUsername, session.Username)
+func (j *Client) logger(accountId string, operation string, _ *Session, logger *log.Logger) *log.Logger {
+ l := logger.With().Str(logOperation, operation)
if accountId != "" {
l = l.Str(logAccountId, accountId)
}
return log.From(l)
}
-func (j *Client) loggerParams(accountId string, operation string, session *Session, logger *log.Logger, params func(zerolog.Context) zerolog.Context) *log.Logger {
- l := logger.With().Str(logOperation, operation).Str(logUsername, session.Username)
+func (j *Client) loggerParams(accountId string, operation string, _ *Session, logger *log.Logger, params func(zerolog.Context) zerolog.Context) *log.Logger {
+ l := logger.With().Str(logOperation, operation)
if accountId != "" {
l = l.Str(logAccountId, accountId)
}
diff --git a/pkg/jmap/jmap_session.go b/pkg/jmap/jmap_session.go
index 12013724aa..f9208c12d4 100644
--- a/pkg/jmap/jmap_session.go
+++ b/pkg/jmap/jmap_session.go
@@ -128,9 +128,9 @@ func (s *Session) SubmissionAccountId(accountId string) string {
// Create a new log.Logger that is decorated with fields containing information about the Session.
func (s Session) DecorateLogger(l log.Logger) *log.Logger {
return log.From(l.With().
- Str(logUsername, s.Username).
- Str(logApiUrl, s.ApiUrl).
- Str(logSessionState, string(s.State)))
+ Str(logUsername, log.SafeString(s.Username)).
+ Str(logEndpoint, log.SafeString(s.JmapEndpoint)).
+ Str(logSessionState, log.SafeString(string(s.State))))
}
func endpointOf(u *url.URL) string {