diff --git a/server/channels/api4/system.go b/server/channels/api4/system.go index cf25cfdc36..33f2223df8 100644 --- a/server/channels/api4/system.go +++ b/server/channels/api4/system.go @@ -703,7 +703,7 @@ func setServerBusy(c *Context, w http.ResponseWriter, r *http.Request) { audit.AddEventParameter(auditRec, "seconds", i) c.App.Srv().Platform().Busy.Set(time.Second * time.Duration(i)) - c.Logger.Warn("server busy state activated - non-critical services disabled", mlog.Int64("seconds", i)) + c.Logger.Warn("server busy state activated - non-critical services disabled", mlog.Int("seconds", i)) auditRec.Success() ReturnStatusOK(w) diff --git a/server/channels/app/audit.go b/server/channels/app/audit.go index 4cffa89db8..aee7c349ae 100644 --- a/server/channels/app/audit.go +++ b/server/channels/app/audit.go @@ -120,7 +120,7 @@ func (s *Server) configureAudit(adt *audit.Audit, bAllowAdvancedLogging bool) er if err != nil { return fmt.Errorf("invalid config source for audit, %w", err) } - mlog.Debug("Loaded audit configuration", mlog.String("source", string(dsn))) + mlog.Debug("Loaded audit configuration", mlog.String("source", dsn)) } else { s.Log().Debug("Advanced logging config not provided for audit") } diff --git a/server/channels/app/import.go b/server/channels/app/import.go index 4a630ba562..223e6c34e4 100644 --- a/server/channels/app/import.go +++ b/server/channels/app/import.go @@ -118,7 +118,7 @@ func (a *App) bulkImportWorker(c request.CTX, dryRun bool, wg *sync.WaitGroup, l c.Logger().Info("Started new bulk import worker", mlog.String("bulk_import_worker_id", workerID)) defer func() { wg.Done() - c.Logger().Info("Bulk import worker finished", mlog.String("bulk_import_worker_id", workerID), mlog.Uint64("processed_lines", processedLines)) + c.Logger().Info("Bulk import worker finished", mlog.String("bulk_import_worker_id", workerID), mlog.Uint("processed_lines", processedLines)) }() postLines := []imports.LineImportWorkerData{} @@ -155,7 +155,7 @@ func (a *App) bulkImportWorker(c request.CTX, dryRun bool, wg *sync.WaitGroup, l processedLines++ if processedLines%statusUpdateAfterLines == 0 { - c.Logger().Info("Worker progress", mlog.String("bulk_import_worker_id", workerID), mlog.Uint64("processed_lines", processedLines)) + c.Logger().Info("Worker progress", mlog.String("bulk_import_worker_id", workerID), mlog.Uint("processed_lines", processedLines)) } } diff --git a/server/channels/app/import_functions.go b/server/channels/app/import_functions.go index 50e4ef8c95..43a6d6cfee 100644 --- a/server/channels/app/import_functions.go +++ b/server/channels/app/import_functions.go @@ -15,8 +15,6 @@ import ( "path" "strings" - "github.com/mattermost/logr/v2" - "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/public/shared/request" @@ -31,7 +29,7 @@ import ( // These functions import data directly into the database. Security and permission checks are bypassed but validity is // still enforced. func (a *App) importScheme(rctx request.CTX, data *imports.SchemeImportData, dryRun bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Name != nil { fields = append(fields, mlog.String("schema_name", *data.Name)) } @@ -121,7 +119,7 @@ func (a *App) importScheme(rctx request.CTX, data *imports.SchemeImportData, dry } func (a *App) importRole(rctx request.CTX, data *imports.RoleImportData, dryRun bool, isSchemeRole bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Name != nil { fields = append(fields, mlog.String("role_name", *data.Name)) } @@ -176,7 +174,7 @@ func (a *App) importRole(rctx request.CTX, data *imports.RoleImportData, dryRun } func (a *App) importTeam(rctx request.CTX, data *imports.TeamImportData, dryRun bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Name != nil { fields = append(fields, mlog.String("team_name", *data.Name)) } @@ -252,7 +250,7 @@ func (a *App) importTeam(rctx request.CTX, data *imports.TeamImportData, dryRun } func (a *App) importChannel(rctx request.CTX, data *imports.ChannelImportData, dryRun bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Name != nil { fields = append(fields, mlog.String("channel_name", *data.Name)) } @@ -332,7 +330,7 @@ func (a *App) importChannel(rctx request.CTX, data *imports.ChannelImportData, d } func (a *App) importUser(rctx request.CTX, data *imports.UserImportData, dryRun bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Username != nil { fields = append(fields, mlog.String("user_name", *data.Username)) } @@ -1205,7 +1203,7 @@ func (a *App) importReplies(rctx request.CTX, data []imports.ReplyImportData, po reply.Message = *replyData.Message reply.CreateAt = *replyData.CreateAt if reply.CreateAt < post.CreateAt { - rctx.Logger().Warn("Reply CreateAt is before parent post CreateAt, setting it to parent post CreateAt", mlog.Int64("reply_create_at", reply.CreateAt), mlog.Int64("parent_create_at", post.CreateAt)) + rctx.Logger().Warn("Reply CreateAt is before parent post CreateAt, setting it to parent post CreateAt", mlog.Int("reply_create_at", reply.CreateAt), mlog.Int("parent_create_at", post.CreateAt)) reply.CreateAt = post.CreateAt } if replyData.Type != nil { @@ -1274,7 +1272,7 @@ func (a *App) importAttachment(rctx request.CTX, data *imports.AttachmentImportD name = data.Data.Name file = zipFile.(io.Reader) - rctx.Logger().Info("Preparing file upload from ZIP", mlog.String("file_name", name), mlog.Uint64("file_size", data.Data.UncompressedSize64)) + rctx.Logger().Info("Preparing file upload from ZIP", mlog.String("file_name", name), mlog.Uint("file_size", data.Data.UncompressedSize64)) } else { realFile, err := os.Open(*data.Path) if err != nil { @@ -1284,9 +1282,9 @@ func (a *App) importAttachment(rctx request.CTX, data *imports.AttachmentImportD name = realFile.Name() file = realFile - fields := []logr.Field{mlog.String("file_name", name)} + fields := []mlog.Field{mlog.String("file_name", name)} if info, err := realFile.Stat(); err != nil { - fields = append(fields, mlog.Int64("file_size", info.Size())) + fields = append(fields, mlog.Int("file_size", info.Size())) } rctx.Logger().Info("Preparing file upload from file system", fields...) } @@ -1928,7 +1926,7 @@ func (a *App) importMultipleDirectPostLines(rctx request.CTX, lines []imports.Li } func (a *App) importEmoji(rctx request.CTX, data *imports.EmojiImportData, dryRun bool) *model.AppError { - var fields []logr.Field + var fields []mlog.Field if data != nil && data.Name != nil { fields = append(fields, mlog.String("emoji_name", *data.Name)) } diff --git a/server/channels/app/imports/import_validators.go b/server/channels/app/imports/import_validators.go index 98b5ccd18a..040deafe92 100644 --- a/server/channels/app/imports/import_validators.go +++ b/server/channels/app/imports/import_validators.go @@ -436,7 +436,7 @@ func ValidateReplyImportData(data *ReplyImportData, parentCreateAt int64, maxPos } else if *data.CreateAt == 0 { return model.NewAppError("BulkImport", "app.import.validate_reply_import_data.create_at_zero.error", nil, "", http.StatusBadRequest) } else if *data.CreateAt < parentCreateAt { - mlog.Warn("Reply CreateAt is before parent post CreateAt", mlog.Int64("reply_create_at", *data.CreateAt), mlog.Int64("parent_create_at", parentCreateAt)) + mlog.Warn("Reply CreateAt is before parent post CreateAt", mlog.Int("reply_create_at", *data.CreateAt), mlog.Int("parent_create_at", parentCreateAt)) } return nil diff --git a/server/channels/app/notification_push.go b/server/channels/app/notification_push.go index f4409e9e54..a4e6df166c 100644 --- a/server/channels/app/notification_push.go +++ b/server/channels/app/notification_push.go @@ -377,11 +377,11 @@ func (hub *PushNotificationsHub) start(c request.CTX) { case notificationTypeUpdateBadge: err = hub.app.updateMobileAppBadgeSync(c, notification.userID) default: - mlog.Debug("Invalid notification type", mlog.String("notification_type", string(notification.notificationType))) + mlog.Debug("Invalid notification type", mlog.String("notification_type", notification.notificationType)) } if err != nil { - mlog.Error("Unable to send push notification", mlog.String("notification_type", string(notification.notificationType)), mlog.Err(err)) + mlog.Error("Unable to send push notification", mlog.String("notification_type", notification.notificationType), mlog.Err(err)) } }(notification) case <-hub.stopChan: @@ -473,7 +473,7 @@ func (a *App) SendAckToPushProxy(ack *model.PushNotificationAck) error { mlog.String("ackId", ack.Id), mlog.String("type", ack.NotificationType), mlog.String("deviceType", ack.ClientPlatform), - mlog.Int64("receivedAt", ack.ClientReceivedAt), + mlog.Int("receivedAt", ack.ClientReceivedAt), mlog.String("status", model.PushReceived), ) diff --git a/server/channels/app/platform/cluster_handlers.go b/server/channels/app/platform/cluster_handlers.go index 3537f09ebd..5458afb96a 100644 --- a/server/channels/app/platform/cluster_handlers.go +++ b/server/channels/app/platform/cluster_handlers.go @@ -112,7 +112,7 @@ func (ps *PlatformService) clusterBusyStateChgHandler(msg *model.ClusterMessage) ps.Busy.ClusterEventChanged(&sbs) if sbs.Busy { - ps.logger.Warn("server busy state activated via cluster event - non-critical services disabled", mlog.Int64("expires_sec", sbs.Expires)) + ps.logger.Warn("server busy state activated via cluster event - non-critical services disabled", mlog.Int("expires_sec", sbs.Expires)) } else { ps.logger.Info("server busy state cleared via cluster event - non-critical services enabled") } diff --git a/server/channels/app/platform/config.go b/server/channels/app/platform/config.go index be3c85da5a..2a9ed4aa7f 100644 --- a/server/channels/app/platform/config.go +++ b/server/channels/app/platform/config.go @@ -147,7 +147,7 @@ func (ps *PlatformService) ConfigureLogger(name string, logger *mlog.Logger, log if err != nil { return fmt.Errorf("invalid config source for %s, %w", name, err) } - ps.logger.Info("Loaded configuration for "+name, mlog.String("source", string(dsn))) + ps.logger.Info("Loaded configuration for "+name, mlog.String("source", dsn)) } else { ps.logger.Debug("Advanced logging config not provided for " + name) } diff --git a/server/channels/app/platform/feature_flags.go b/server/channels/app/platform/feature_flags.go index 5d471f2a7a..0b4008d5d0 100644 --- a/server/channels/app/platform/feature_flags.go +++ b/server/channels/app/platform/feature_flags.go @@ -42,7 +42,7 @@ func (ps *PlatformService) updateFeatureFlagValuesFromManagement() { newFlags := ps.featureFlagSynchronizer.UpdateFeatureFlagValues(oldFlags) oldFlagsBytes, _ := json.Marshal(oldFlags) newFlagsBytes, _ := json.Marshal(newFlags) - ps.logger.Debug("Checking feature flags from management service", mlog.String("old_flags", string(oldFlagsBytes)), mlog.String("new_flags", string(newFlagsBytes))) + ps.logger.Debug("Checking feature flags from management service", mlog.String("old_flags", oldFlagsBytes), mlog.String("new_flags", newFlagsBytes)) if oldFlags != newFlags { ps.logger.Debug("Feature flag change detected, updating config") *newCfg.FeatureFlags = newFlags diff --git a/server/channels/app/platform/log.go b/server/channels/app/platform/log.go index 8021267d7b..87f6c37f31 100644 --- a/server/channels/app/platform/log.go +++ b/server/channels/app/platform/log.go @@ -13,7 +13,6 @@ import ( "os" "time" - "github.com/mattermost/logr/v2" "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/v8/config" @@ -32,7 +31,10 @@ func (ps *PlatformService) initLogging() error { // create the app logger if needed if ps.logger == nil { var err error - ps.logger, err = mlog.NewLogger(logr.MaxFieldLen(*ps.Config().LogSettings.MaxFieldSize)) + ps.logger, err = mlog.NewLogger( + mlog.MaxFieldLen(*ps.Config().LogSettings.MaxFieldSize), + mlog.StackFilter("log"), + ) if err != nil { return err } diff --git a/server/channels/app/platform/shared_channel_notifier.go b/server/channels/app/platform/shared_channel_notifier.go index 7655f5d7e5..22d39712a1 100644 --- a/server/channels/app/platform/shared_channel_notifier.go +++ b/server/channels/app/platform/shared_channel_notifier.go @@ -40,7 +40,7 @@ func (ps *PlatformService) SharedChannelSyncHandler(event *model.WebSocketEvent) if err != nil { mlog.Warn( err.Error(), - mlog.String("event", string(event.EventType())), + mlog.String("event", event.EventType()), mlog.String("action", "content_sync"), ) } @@ -49,7 +49,7 @@ func (ps *PlatformService) SharedChannelSyncHandler(event *model.WebSocketEvent) if err != nil { mlog.Warn( err.Error(), - mlog.String("event", string(event.EventType())), + mlog.String("event", event.EventType()), mlog.String("action", "invitation"), ) } diff --git a/server/channels/app/platform/web_conn.go b/server/channels/app/platform/web_conn.go index 938a08f2b0..cce589989f 100644 --- a/server/channels/app/platform/web_conn.go +++ b/server/channels/app/platform/web_conn.go @@ -477,7 +477,7 @@ func (wc *WebConn) writePump() { logData := []mlog.Field{ mlog.String("user_id", wc.UserId), mlog.String("conn_id", wc.GetConnectionID()), - mlog.String("type", string(msg.EventType())), + mlog.String("type", msg.EventType()), mlog.Int("size", buf.Len()), } if evtOk { @@ -735,7 +735,7 @@ func (wc *WebConn) ShouldSendEvent(msg *model.WebSocketEvent) bool { "websocket.slow: dropping message", mlog.String("user_id", wc.UserId), mlog.String("conn_id", wc.GetConnectionID()), - mlog.String("type", string(msg.EventType())), + mlog.String("type", msg.EventType()), ) // Reset timer to now. wc.lastLogTimeSlow = time.Now() diff --git a/server/channels/app/platform/websocket_router.go b/server/channels/app/platform/websocket_router.go index 6d359e6091..9f15b5355d 100644 --- a/server/channels/app/platform/websocket_router.go +++ b/server/channels/app/platform/websocket_router.go @@ -96,7 +96,7 @@ func returnWebSocketError(ps *PlatformService, conn *WebConn, r *model.WebSocket } logF( "websocket routing error.", - mlog.Int64("seq", r.Seq), + mlog.Int("seq", r.Seq), mlog.String("user_id", conn.UserId), mlog.String("system_message", err.SystemMessage(i18n.T)), mlog.Err(err), diff --git a/server/channels/app/session.go b/server/channels/app/session.go index e8949fd298..7e6463c989 100644 --- a/server/channels/app/session.go +++ b/server/channels/app/session.go @@ -280,7 +280,7 @@ func (a *App) ExtendSessionExpiryIfNeeded(rctx request.CTX, session *model.Sessi } mlog.Debug("Session extended", mlog.String("user_id", session.UserId), mlog.String("session_id", session.Id), - mlog.Int64("newExpiry", newExpiry), mlog.Int64("session_length", sessionLength)) + mlog.Int("newExpiry", newExpiry), mlog.Int("session_length", sessionLength)) auditRec.Success() auditRec.AddEventResultState(session) diff --git a/server/channels/app/slashcommands/command_exportlink.go b/server/channels/app/slashcommands/command_exportlink.go index 81a75a58ca..0a8146a05e 100644 --- a/server/channels/app/slashcommands/command_exportlink.go +++ b/server/channels/app/slashcommands/command_exportlink.go @@ -8,9 +8,9 @@ import ( "strings" "time" - "github.com/mattermost/logr/v2" "github.com/mattermost/mattermost/server/public/model" "github.com/mattermost/mattermost/server/public/shared/i18n" + "github.com/mattermost/mattermost/server/public/shared/mlog" "github.com/mattermost/mattermost/server/public/shared/request" "github.com/mattermost/mattermost/server/v8/channels/app" "github.com/mattermost/mattermost/server/v8/platform/shared/filestore" @@ -86,7 +86,7 @@ func (*ExportLinkProvider) DoCommand(a *app.App, c request.CTX, args *model.Comm } t, err := b.FileModTime(f) if err != nil { - a.Log().Warn("Failed to get file mod time", logr.String("file", f), logr.Err(err)) + a.Log().Warn("Failed to get file mod time", mlog.String("file", f), mlog.Err(err)) continue } if t.After(latestFound) { diff --git a/server/channels/store/searchlayer/file_info_layer.go b/server/channels/store/searchlayer/file_info_layer.go index 0cc417a18b..9161bbee5d 100644 --- a/server/channels/store/searchlayer/file_info_layer.go +++ b/server/channels/store/searchlayer/file_info_layer.go @@ -83,10 +83,10 @@ func (s SearchFileInfoStore) deleteFileIndexBatch(endTime, limit int64) { if engine.IsIndexingEnabled() { runIndexFn(engine, func(engineCopy searchengine.SearchEngineInterface) { if err := engineCopy.DeleteFilesBatch(endTime, limit); err != nil { - mlog.Error("Encountered error deleting a batch of files", mlog.Int64("limit", limit), mlog.Int64("end_time", endTime), mlog.String("search_engine", engineCopy.GetName()), mlog.Err(err)) + mlog.Error("Encountered error deleting a batch of files", mlog.Int("limit", limit), mlog.Int("end_time", endTime), mlog.String("search_engine", engineCopy.GetName()), mlog.Err(err)) return } - mlog.Debug("Removed batch of files from the index in search engine", mlog.String("search_engine", engineCopy.GetName()), mlog.Int64("end_time", endTime), mlog.Int64("limit", limit)) + mlog.Debug("Removed batch of files from the index in search engine", mlog.String("search_engine", engineCopy.GetName()), mlog.Int("end_time", endTime), mlog.Int("limit", limit)) }) } } diff --git a/server/channels/store/sqlstore/draft_store.go b/server/channels/store/sqlstore/draft_store.go index 6e12d3ea61..e5ae58c41e 100644 --- a/server/channels/store/sqlstore/draft_store.go +++ b/server/channels/store/sqlstore/draft_store.go @@ -229,7 +229,7 @@ func (s *SqlDraftStore) determineMaxDraftSize() int { // Assume a worst-case representation of four bytes per rune. maxDraftSize := int(maxDraftSizeBytes) / 4 - mlog.Info("Draft.Message has size restrictions", mlog.Int("max_characters", maxDraftSize), mlog.Int32("max_bytes", maxDraftSizeBytes)) + mlog.Info("Draft.Message has size restrictions", mlog.Int("max_characters", maxDraftSize), mlog.Int("max_bytes", maxDraftSizeBytes)) return maxDraftSize } diff --git a/server/channels/store/sqlstore/post_store.go b/server/channels/store/sqlstore/post_store.go index 9d4e51d12b..24cd8838ec 100644 --- a/server/channels/store/sqlstore/post_store.go +++ b/server/channels/store/sqlstore/post_store.go @@ -2548,7 +2548,7 @@ func (s *SqlPostStore) determineMaxPostSize() int { maxPostSize = model.PostMessageMaxRunesV1 } - mlog.Info("Post.Message has size restrictions", mlog.Int("max_characters", maxPostSize), mlog.Int32("max_bytes", maxPostSizeBytes)) + mlog.Info("Post.Message has size restrictions", mlog.Int("max_characters", maxPostSize), mlog.Int("max_bytes", maxPostSizeBytes)) return maxPostSize } diff --git a/server/channels/web/webhook.go b/server/channels/web/webhook.go index 845c48b79d..77f2fee1ad 100644 --- a/server/channels/web/webhook.go +++ b/server/channels/web/webhook.go @@ -55,7 +55,7 @@ func incomingWebhook(c *Context, w http.ResponseWriter, r *http.Request) { if err != nil { fields = append(fields, mlog.NamedErr("encoding_err", err)) } else { - fields = append(fields, mlog.String("payload", string(payload))) + fields = append(fields, mlog.String("payload", payload)) } mlog.Debug("Incoming webhook received", fields...) diff --git a/server/channels/wsapi/websocket_handler.go b/server/channels/wsapi/websocket_handler.go index 3a3a8b5af6..0898a6386f 100644 --- a/server/channels/wsapi/websocket_handler.go +++ b/server/channels/wsapi/websocket_handler.go @@ -36,7 +36,7 @@ func (wh webSocketHandler) ServeWebSocket(conn *platform.WebConn, r *model.WebSo mlog.Error( "websocket session error", mlog.String("action", r.Action), - mlog.Int64("seq", r.Seq), + mlog.Int("seq", r.Seq), mlog.String("user_id", conn.UserId), mlog.String("error_message", sessionErr.SystemMessage(i18n.T)), mlog.Err(sessionErr), @@ -58,7 +58,7 @@ func (wh webSocketHandler) ServeWebSocket(conn *platform.WebConn, r *model.WebSo mlog.Error( "websocket request handling error", mlog.String("action", r.Action), - mlog.Int64("seq", r.Seq), + mlog.Int("seq", r.Seq), mlog.String("user_id", conn.UserId), mlog.String("error_message", err.SystemMessage(i18n.T)), mlog.Err(err), diff --git a/server/go.mod b/server/go.mod index be9830ecb8..7039ed2604 100644 --- a/server/go.mod +++ b/server/go.mod @@ -38,9 +38,9 @@ require ( github.com/lib/pq v1.10.9 github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 github.com/mattermost/gosaml2 v0.8.0 - github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d - github.com/mattermost/logr/v2 v2.0.18 - github.com/mattermost/mattermost/server/public v0.0.9 + github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956 + github.com/mattermost/logr/v2 v2.0.21 + github.com/mattermost/mattermost/server/public v0.0.10-0.20231116111926-0bc542620ce2 github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56 github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0 github.com/mattermost/squirrel v0.4.0 @@ -131,7 +131,6 @@ require ( github.com/google/uuid v1.3.0 // indirect github.com/gopherjs/gopherjs v1.17.2 // indirect github.com/gorilla/css v1.0.0 // indirect - github.com/graph-gophers/graphql-go v1.5.1-0.20230110080634-edea822f558a // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect diff --git a/server/go.sum b/server/go.sum index 7c8f75dc18..94ab0139ee 100644 --- a/server/go.sum +++ b/server/go.sum @@ -205,7 +205,6 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/gigawattio/window v0.0.0-20180317192513-0f5467e35573 h1:u8AQ9bPa9oC+8/A/jlWouakhIvkFfuxgIIRjiy8av7I= github.com/gigawattio/window v0.0.0-20180317192513-0f5467e35573/go.mod h1:eBvb3i++NHDH4Ugo9qCvMw8t0mTSctaEa5blJbWcNxs= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-asn1-ber/asn1-ber v1.3.2-0.20191121212151-29be175fc3a3/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.4 h1:vXT6d/FNDiELJnLb6hGNa309LMsrCoYFvpwHDF0+Y1A= github.com/go-asn1-ber/asn1-ber v1.5.4/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -217,9 +216,6 @@ github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2 github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= -github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-resty/resty/v2 v2.0.0/go.mod h1:dZGr0i9PLlaaTD4H/hoZIDjQ+r6xq8mgbRzHZf7f2J8= github.com/go-resty/resty/v2 v2.10.0 h1:Qla4W/+TMmv0fOeeRqzEpXPLfTUnR5HZ1+lGs+CkiCo= github.com/go-resty/resty/v2 v2.10.0/go.mod h1:iiP/OpA0CkcL3IGt1O0+/SIItFUbkkyw5BGXiVdTu+A= @@ -286,7 +282,6 @@ github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= @@ -328,8 +323,6 @@ github.com/gorilla/schema v1.2.0 h1:YufUaxZYCKGFuAq3c96BOhjgd5nmXiOY9NGzF247Tsc= github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/graph-gophers/graphql-go v1.5.1-0.20230110080634-edea822f558a h1:i0+Se9S+2zL5CBxJouqn2Ej6UQMwH1c57ZB6DVnqck4= -github.com/graph-gophers/graphql-go v1.5.1-0.20230110080634-edea822f558a/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/grpc-gateway v1.5.0/go.mod h1:RSKVYQBd5MCa4OVpNdGskqpgL2+G+NZTnrVHpWWfpdw= github.com/h2non/go-is-svg v0.0.0-20160927212452-35e8c4b0612c h1:fEE5/5VNnYUoBOj2I9TP8Jc+a7lge3QWn9DKE7NCwfc= @@ -451,12 +444,12 @@ github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 h1:Khvh6waxG github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404/go.mod h1:RyS7FDNQlzF1PsjbJWHRI35exqaKGSO9qD4iv8QjE34= github.com/mattermost/gosaml2 v0.8.0 h1:nkYiByawqwJ7KncK1LDWKwTx5aRarBTQsmH+XcCVsWQ= github.com/mattermost/gosaml2 v0.8.0/go.mod h1:1nMAdE2Psxaz+pj79Oytayi+hC3aZUi3SmJQlIe+sLM= -github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d h1:/RJ/UV7M5c7L2TQ0KNm4yZxxFvC1nvRz/gY/Daa35aI= -github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d/go.mod h1:HLbgMEI5K131jpxGazJ97AxfPDt31osq36YS1oxFQPQ= -github.com/mattermost/logr/v2 v2.0.18 h1:qiznuwwKckZJoGtBYc4Y9FAY97/oQwV1Pq9oO5qP5nk= -github.com/mattermost/logr/v2 v2.0.18/go.mod h1:1dm/YhTpozsqANXxo5Pi5zYLBsal2xY0pX+JZNbzYJY= -github.com/mattermost/mattermost/server/public v0.0.9 h1:Qsktgxx5dc8xVAUHP5MbSLi6Cf82iB/83r6S9bluHto= -github.com/mattermost/mattermost/server/public v0.0.9/go.mod h1:sgXQrYzs+IJy51mB8E8OBljagk2u3YwQRoYlBH5goiw= +github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956 h1:Y1Tu/swM31pVwwb2BTCsOdamENjjWCI6qmfHLbk6OZI= +github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956/go.mod h1:SRl30Lb7/QoYyohYeVBuqYvvmXSZJxZgiV3Zf6VbxjI= +github.com/mattermost/logr/v2 v2.0.21 h1:CMHsP+nrbRlEC4g7BwOk1GAnMtHkniFhlSQPXy52be4= +github.com/mattermost/logr/v2 v2.0.21/go.mod h1:kZkB/zqKL9e+RY5gB3vGpsyenC+TpuiOenjMkvJJbzc= +github.com/mattermost/mattermost/server/public v0.0.10-0.20231116111926-0bc542620ce2 h1:wHfzhrRC64yqKNAWnwjC45pDewbaOGJ9/n2ocGMJ8Ec= +github.com/mattermost/mattermost/server/public v0.0.10-0.20231116111926-0bc542620ce2/go.mod h1:Pu0zZn5n/rVj6LJvDc+Q0PnK/LAVE09CXCyY4wsn3w8= github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56 h1:SjFYbWvmuf73d/KaYlnHosPpB3/k38ebr1WWw9X5XKc= github.com/mattermost/morph v1.0.5-0.20230511171014-e76e25978d56/go.mod h1:gD+EaqX2UMyyuzmF4PFh4r33XneQ8Nzi+0E8nXjMa3A= github.com/mattermost/rsc v0.0.0-20160330161541-bbaefb05eaa0 h1:G9tL6JXRBMzjuD1kkBtcnd42kUiT6QDwxfFYu7adM6o= @@ -750,8 +743,6 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opentelemetry.io/otel v1.6.3/go.mod h1:7BgNga5fNlF/iZjG06hM3yofffp0ofKCDwSXx1GC4dI= -go.opentelemetry.io/otel/trace v1.6.3/go.mod h1:GNJQusJlUgZl9/TQBPKU/Y/ty+0iVB5fjhKeJGZPGFs= go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= diff --git a/server/platform/services/awsmeter/awsmeter.go b/server/platform/services/awsmeter/awsmeter.go index d3b0b09d1d..acde6cd9a3 100644 --- a/server/platform/services/awsmeter/awsmeter.go +++ b/server/platform/services/awsmeter/awsmeter.go @@ -101,7 +101,7 @@ func (awsm *AwsMeter) GetUserCategoryUsage(dimensions []string, startTime time.T case model.AwsMeteringDimensionUsageHrs: userCount, err = awsm.store.User().AnalyticsActiveCountForPeriod(model.GetMillisForTime(startTime), model.GetMillisForTime(endTime), model.UserCountOptions{}) if err != nil { - mlog.Warn("Failed to obtain usage data", mlog.String("dimension", dimension), mlog.String("start", startTime.String()), mlog.Int64("count", userCount), mlog.Err(err)) + mlog.Warn("Failed to obtain usage data", mlog.String("dimension", dimension), mlog.Time("start", startTime), mlog.Int("count", userCount), mlog.Err(err)) continue } default: @@ -148,7 +148,7 @@ func sendReportToMeteringService(ams *AWSMeterService, report *AWSMeterReport) e return errors.Wrap(err, "Invalid metering service id.") } - mlog.Debug("Sent record to AWS metering service", mlog.String("dimension", report.Dimension), mlog.Int64("value", report.Value), mlog.String("timestamp", report.Timestamp.String())) + mlog.Debug("Sent record to AWS metering service", mlog.String("dimension", report.Dimension), mlog.Int("value", report.Value), mlog.String("timestamp", report.Timestamp.String())) return nil } diff --git a/server/platform/services/remotecluster/ping.go b/server/platform/services/remotecluster/ping.go index 30f3bc8255..dbdfa62899 100644 --- a/server/platform/services/remotecluster/ping.go +++ b/server/platform/services/remotecluster/ping.go @@ -135,9 +135,9 @@ func (rcs *Service) pingRemote(rc *model.RemoteCluster) error { rcs.server.Log().Log(mlog.LvlRemoteClusterServiceDebug, "Remote cluster ping", mlog.String("remote", rc.DisplayName), mlog.String("remoteId", rc.RemoteId), - mlog.Int64("SentAt", ping.SentAt), - mlog.Int64("RecvAt", ping.RecvAt), - mlog.Int64("Diff", ping.RecvAt-ping.SentAt), + mlog.Int("SentAt", ping.SentAt), + mlog.Int("RecvAt", ping.RecvAt), + mlog.Int("Diff", ping.RecvAt-ping.SentAt), ) return nil } diff --git a/server/platform/services/searchengine/bleveengine/search.go b/server/platform/services/searchengine/bleveengine/search.go index e762c9ab1b..efddab1f64 100644 --- a/server/platform/services/searchengine/bleveengine/search.go +++ b/server/platform/services/searchengine/bleveengine/search.go @@ -269,7 +269,7 @@ func (b *BleveEngine) DeleteChannelPosts(channelID string) *model.AppError { err.Error(), http.StatusInternalServerError) } - mlog.Info("Posts for channel deleted", mlog.String("channel_id", channelID), mlog.Int64("deleted", deleted)) + mlog.Info("Posts for channel deleted", mlog.String("channel_id", channelID), mlog.Int("deleted", deleted)) return nil } @@ -288,7 +288,7 @@ func (b *BleveEngine) DeleteUserPosts(userID string) *model.AppError { err.Error(), http.StatusInternalServerError) } - mlog.Info("Posts for user deleted", mlog.String("user_id", userID), mlog.Int64("deleted", deleted)) + mlog.Info("Posts for user deleted", mlog.String("user_id", userID), mlog.Int("deleted", deleted)) return nil } @@ -832,7 +832,7 @@ func (b *BleveEngine) DeleteUserFiles(userID string) *model.AppError { err.Error(), http.StatusInternalServerError) } - mlog.Info("Files for user deleted", mlog.String("user_id", userID), mlog.Int64("deleted", deleted)) + mlog.Info("Files for user deleted", mlog.String("user_id", userID), mlog.Int("deleted", deleted)) return nil } @@ -851,7 +851,7 @@ func (b *BleveEngine) DeletePostFiles(postID string) *model.AppError { err.Error(), http.StatusInternalServerError) } - mlog.Info("Files for post deleted", mlog.String("post_id", postID), mlog.Int64("deleted", deleted)) + mlog.Info("Files for post deleted", mlog.String("post_id", postID), mlog.Int("deleted", deleted)) return nil } @@ -873,7 +873,7 @@ func (b *BleveEngine) DeleteFilesBatch(endTime, limit int64) *model.AppError { err.Error(), http.StatusInternalServerError) } - mlog.Info("Files in batch deleted", mlog.Int64("endTime", endTime), mlog.Int64("limit", limit), mlog.Int64("deleted", deleted)) + mlog.Info("Files in batch deleted", mlog.Int("endTime", endTime), mlog.Int("limit", limit), mlog.Int("deleted", deleted)) return nil } diff --git a/server/platform/services/sharedchannel/sync_recv.go b/server/platform/services/sharedchannel/sync_recv.go index c1df7bfed7..a0ae476ae4 100644 --- a/server/platform/services/sharedchannel/sync_recv.go +++ b/server/platform/services/sharedchannel/sync_recv.go @@ -29,7 +29,7 @@ func (scs *Service) onReceiveSyncMessage(msg model.RemoteClusterMsg, rc *model.R if scs.server.Log().IsLevelEnabled(mlog.LvlSharedChannelServiceMessagesInbound) { scs.server.Log().Log(mlog.LvlSharedChannelServiceMessagesInbound, "inbound message", mlog.String("remote", rc.DisplayName), - mlog.String("msg", string(msg.Payload)), + mlog.String("msg", msg.Payload), ) } @@ -142,7 +142,7 @@ func (scs *Service) processSyncMessage(c request.CTX, syncMsg *syncMsg, rc *mode mlog.String("user_id", reaction.UserId), mlog.String("post_id", reaction.PostId), mlog.String("emoji", reaction.EmojiName), - mlog.Int64("delete_at", reaction.DeleteAt), + mlog.Int("delete_at", reaction.DeleteAt), mlog.Err(err), ) } else { @@ -151,7 +151,7 @@ func (scs *Service) processSyncMessage(c request.CTX, syncMsg *syncMsg, rc *mode mlog.String("user_id", reaction.UserId), mlog.String("post_id", reaction.PostId), mlog.String("emoji", reaction.EmojiName), - mlog.Int64("delete_at", reaction.DeleteAt), + mlog.Int("delete_at", reaction.DeleteAt), ) if syncResp.ReactionsLastUpdateAt < reaction.UpdateAt { diff --git a/server/platform/services/sharedchannel/sync_send.go b/server/platform/services/sharedchannel/sync_send.go index 82a0255e7d..891c6cdc93 100644 --- a/server/platform/services/sharedchannel/sync_send.go +++ b/server/platform/services/sharedchannel/sync_send.go @@ -349,7 +349,7 @@ func (scs *Service) updateCursorForRemote(scrId string, rc *model.RemoteCluster, scs.server.Log().Log(mlog.LvlSharedChannelServiceDebug, "updated cursor for remote", mlog.String("remote_id", rc.RemoteId), mlog.String("remote", rc.DisplayName), - mlog.Int64("last_post_update_at", cursor.LastPostUpdateAt), + mlog.Int("last_post_update_at", cursor.LastPostUpdateAt), mlog.String("last_post_id", cursor.LastPostId), ) } diff --git a/server/platform/services/upgrader/upgrader_linux.go b/server/platform/services/upgrader/upgrader_linux.go index 0bbc031ed0..422b989398 100644 --- a/server/platform/services/upgrader/upgrader_linux.go +++ b/server/platform/services/upgrader/upgrader_linux.go @@ -208,7 +208,7 @@ func UpgradeToE0() error { os.Remove(filename) } setUpgradeError(fmt.Errorf("error downloading the new Mattermost server binary file (percentage: %d)", getUpgradePercentage())) - mlog.Error("Unable to download the Mattermost server binary file", mlog.Int64("percentage", getUpgradePercentage()), mlog.String("url", getCurrentVersionTgzURL()), mlog.Err(err)) + mlog.Error("Unable to download the Mattermost server binary file", mlog.Int("percentage", getUpgradePercentage()), mlog.String("url", getCurrentVersionTgzURL()), mlog.Err(err)) setUpgradePercentage(0) return err } diff --git a/server/public/go.mod b/server/public/go.mod index f046e3744a..bd76b3e5d5 100644 --- a/server/public/go.mod +++ b/server/public/go.mod @@ -14,8 +14,8 @@ require ( github.com/hashicorp/go-plugin v1.4.10 github.com/lib/pq v1.10.9 github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 - github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d - github.com/mattermost/logr/v2 v2.0.16 + github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956 + github.com/mattermost/logr/v2 v2.0.21 github.com/nicksnyder/go-i18n/v2 v2.0.3 github.com/pborman/uuid v1.2.1 github.com/pkg/errors v0.9.1 diff --git a/server/public/go.sum b/server/public/go.sum index b079121912..d2e68a8585 100644 --- a/server/public/go.sum +++ b/server/public/go.sum @@ -36,7 +36,6 @@ github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiD github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= -github.com/go-asn1-ber/asn1-ber v1.3.2-0.20191121212151-29be175fc3a3/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-asn1-ber/asn1-ber v1.5.4 h1:vXT6d/FNDiELJnLb6hGNa309LMsrCoYFvpwHDF0+Y1A= github.com/go-asn1-ber/asn1-ber v1.5.4/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= @@ -100,10 +99,10 @@ github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404 h1:Khvh6waxG1cHc4Cz5ef9n3XVCxRWpAKUtqg9PJl5+y8= github.com/mattermost/go-i18n v1.11.1-0.20211013152124-5c415071e404/go.mod h1:RyS7FDNQlzF1PsjbJWHRI35exqaKGSO9qD4iv8QjE34= -github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d h1:/RJ/UV7M5c7L2TQ0KNm4yZxxFvC1nvRz/gY/Daa35aI= -github.com/mattermost/ldap v0.0.0-20201202150706-ee0e6284187d/go.mod h1:HLbgMEI5K131jpxGazJ97AxfPDt31osq36YS1oxFQPQ= -github.com/mattermost/logr/v2 v2.0.16 h1:jnePX4cPskC3WDFvUardh/xZfxNdsFXbEERJQ1kUEDE= -github.com/mattermost/logr/v2 v2.0.16/go.mod h1:1dm/YhTpozsqANXxo5Pi5zYLBsal2xY0pX+JZNbzYJY= +github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956 h1:Y1Tu/swM31pVwwb2BTCsOdamENjjWCI6qmfHLbk6OZI= +github.com/mattermost/ldap v0.0.0-20231116144001-0f480c025956/go.mod h1:SRl30Lb7/QoYyohYeVBuqYvvmXSZJxZgiV3Zf6VbxjI= +github.com/mattermost/logr/v2 v2.0.21 h1:CMHsP+nrbRlEC4g7BwOk1GAnMtHkniFhlSQPXy52be4= +github.com/mattermost/logr/v2 v2.0.21/go.mod h1:kZkB/zqKL9e+RY5gB3vGpsyenC+TpuiOenjMkvJJbzc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= diff --git a/server/public/plugin/client_rpc.go b/server/public/plugin/client_rpc.go index 9ed932c601..c493250966 100644 --- a/server/public/plugin/client_rpc.go +++ b/server/public/plugin/client_rpc.go @@ -375,7 +375,7 @@ func (g *hooksRPCClient) ServeHTTP(c *Context, w http.ResponseWriter, r *http.Re go func() { connection, err := g.muxBroker.Accept(serveHTTPStreamId) if err != nil { - g.log.Error("Plugin failed to ServeHTTP, muxBroker couldn't accept connection", mlog.Uint32("serve_http_stream_id", serveHTTPStreamId), mlog.Err(err)) + g.log.Error("Plugin failed to ServeHTTP, muxBroker couldn't accept connection", mlog.Uint("serve_http_stream_id", serveHTTPStreamId), mlog.Err(err)) return } defer connection.Close() @@ -975,7 +975,7 @@ func (g *hooksRPCClient) ServeMetrics(c *Context, w http.ResponseWriter, r *http go func() { connection, err := g.muxBroker.Accept(serveMetricsStreamId) if err != nil { - g.log.Error("Plugin failed to ServeMetrics, muxBroker couldn't accept connection", mlog.Uint32("serve_http_stream_id", serveMetricsStreamId), mlog.Err(err)) + g.log.Error("Plugin failed to ServeMetrics, muxBroker couldn't accept connection", mlog.Uint("serve_http_stream_id", serveMetricsStreamId), mlog.Err(err)) return } defer connection.Close() diff --git a/server/public/shared/mlog/metrics.go b/server/public/shared/mlog/metrics.go new file mode 100644 index 0000000000..a98dcc24a2 --- /dev/null +++ b/server/public/shared/mlog/metrics.go @@ -0,0 +1,11 @@ +// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. +// See LICENSE.txt for license information. + +package mlog + +import ( + "github.com/mattermost/logr/v2" +) + +type Gauge = logr.Gauge +type Counter = logr.Counter diff --git a/server/public/shared/mlog/mlog.go b/server/public/shared/mlog/mlog.go index 593b977fe4..b7ad139d7c 100644 --- a/server/public/shared/mlog/mlog.go +++ b/server/public/shared/mlog/mlog.go @@ -98,32 +98,25 @@ func (lc LoggerConfiguration) toTargetCfg() map[string]logrcfg.TargetCfg { // will be used to generate a string representation. var Any = logr.Any -// Int64 constructs a field containing a key and Int64 value. -var Int64 = logr.Int64 +// Int constructs a field containing a key and int value. +func Int[T ~int | ~int8 | ~int16 | ~int32 | ~int64](key string, val T) Field { + return logr.Int[T](key, val) +} -// Int32 constructs a field containing a key and Int32 value. -var Int32 = logr.Int32 +// Uint constructs a field containing a key and uint value. +func Uint[T ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr](key string, val T) Field { + return logr.Uint[T](key, val) +} -// Int constructs a field containing a key and Int value. -var Int = logr.Int +// Float constructs a field containing a key and float value. +func Float[T ~float32 | ~float64](key string, val T) Field { + return logr.Float[T](key, val) +} -// Uint64 constructs a field containing a key and Uint64 value. -var Uint64 = logr.Uint64 - -// Uint32 constructs a field containing a key and Uint32 value. -var Uint32 = logr.Uint32 - -// Uint constructs a field containing a key and Uint value. -var Uint = logr.Uint - -// Float64 constructs a field containing a key and Float64 value. -var Float64 = logr.Float64 - -// Float32 constructs a field containing a key and Float32 value. -var Float32 = logr.Float32 - -// String constructs a field containing a key and String value. -var String = logr.String +// String constructs a field containing a key and string value. +func String[T ~string | ~[]byte](key string, val T) Field { + return logr.String[T](key, val) +} // Stringer constructs a field containing a key and a fmt.Stringer value. // The fmt.Stringer's `String` method is called lazily. @@ -148,7 +141,9 @@ var NamedErr = func(key string, err error) logr.Field { } // Bool constructs a field containing a key and bool value. -var Bool = logr.Bool +func Bool[T ~bool](key string, val T) Field { + return logr.Bool[T](key, val) +} // Time constructs a field containing a key and time.Time value. var Time = logr.Time @@ -161,10 +156,14 @@ var Duration = logr.Duration var Millis = logr.Millis // Array constructs a field containing a key and array value. -var Array = logr.Array +func Array[S ~[]E, E any](key string, val S) Field { + return logr.Array[S](key, val) +} // Map constructs a field containing a key and map value. -var Map = logr.Map +func Map[M ~map[K]V, K comparable, V any](key string, val M) Field { + return logr.Map[M](key, val) +} // Logger provides a thin wrapper around a Logr instance. This is a struct instead of an interface // so that there are no allocations on the heap each interface method invocation. Normally not diff --git a/server/public/shared/mlog/options.go b/server/public/shared/mlog/options.go index 3a98b480b7..b6b60ec65c 100644 --- a/server/public/shared/mlog/options.go +++ b/server/public/shared/mlog/options.go @@ -53,3 +53,10 @@ func SetMetricsCollector(collector MetricsCollector, updateFreqMillis int64) Opt func StackFilter(pkg ...string) Option { return logr.StackFilter(pkg...) } + +// MaxFieldLen is the maximum number of characters for a field. +// If exceeded, remaining bytes will be discarded. +// Defaults to DefaultMaxFieldLength. +func MaxFieldLen(size int) Option { + return logr.MaxFieldLen(size) +}