From 46fc0c640c5a17c60c97c9ab4e6b9673bfd008a0 Mon Sep 17 00:00:00 2001 From: Doug Lauder Date: Mon, 7 Dec 2020 09:50:45 -0500 Subject: [PATCH] MM-30986 Move global logger init until after server logger fully configured (#16426) - move the initGlobalLogger call to the end of initLogging so a copy of a fully configured logger is made for global logging. --- app/server.go | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/server.go b/app/server.go index bbe7a030dc..5a45ef236a 100644 --- a/app/server.go +++ b/app/server.go @@ -597,18 +597,20 @@ func (s *Server) initLogging() error { s.Log = mlog.NewLogger(utils.MloggerConfigFromLoggerConfig(&s.Config().LogSettings, utils.GetLogFileLocation)) } + // Use this app logger as the global logger (eventually remove all instances of global logging). + // This is deferred because a copy is made of the logger and it must be fully configured before + // the copy is made. + defer mlog.InitGlobalLogger(s.Log) + + // Redirect default Go logger to this logger. + defer mlog.RedirectStdLog(s.Log) + if s.NotificationsLog == nil { notificationLogSettings := utils.GetLogSettingsFromNotificationsLogSettings(&s.Config().NotificationLogSettings) s.NotificationsLog = mlog.NewLogger(utils.MloggerConfigFromLoggerConfig(notificationLogSettings, utils.GetNotificationsLogFileLocation)). WithCallerSkip(1).With(mlog.String("logSource", "notifications")) } - // Redirect default golang logger to this logger - mlog.RedirectStdLog(s.Log) - - // Use this app logger as the global logger (eventually remove all instances of global logging) - mlog.InitGlobalLogger(s.Log) - if s.logListenerId != "" { s.RemoveConfigListener(s.logListenerId) } @@ -638,7 +640,7 @@ func (s *Server) initLogging() error { return fmt.Errorf("invalid advanced logging config, %w", err) } - if err := mlog.ConfigAdvancedLogging(cfg.Get()); err != nil { + if err := s.Log.ConfigAdvancedLogging(cfg.Get()); err != nil { return fmt.Errorf("error configuring advanced logging, %w", err) } @@ -647,7 +649,7 @@ func (s *Server) initLogging() error { } listenerId := cfg.AddListener(func(_, newCfg mlog.LogTargetCfg) { - if err := mlog.ConfigAdvancedLogging(newCfg); err != nil { + if err := s.Log.ConfigAdvancedLogging(newCfg); err != nil { mlog.Error("Error re-configuring advanced logging", mlog.Err(err)) } else { mlog.Info("Re-configured advanced logging")