From b4db76cedbd99bfcfb1c12444c5bd84e92ac01dc Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Fri, 11 May 2018 12:56:54 -0400 Subject: fix mlog-ing before initialized (#8753) Dump mlog to STDOUT before initialized, to allow for logging failures that occur due to config parsing, etc. Fix file logging to honour logger.FileJson instead of copying the logger.ConsoleJson setting. --- mlog/log.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'mlog/log.go') diff --git a/mlog/log.go b/mlog/log.go index ad537a11d..0d1e28e8d 100644 --- a/mlog/log.go +++ b/mlog/log.go @@ -62,6 +62,16 @@ func getZapLevel(level string) zapcore.Level { } } +func makeEncoder(json bool) zapcore.Encoder { + encoderConfig := zap.NewProductionEncoderConfig() + if json { + return zapcore.NewJSONEncoder(encoderConfig) + } + + encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder + return zapcore.NewConsoleEncoder(encoderConfig) +} + func NewLogger(config *LoggerConfiguration) *Logger { cores := []zapcore.Core{} logger := &Logger{ @@ -69,18 +79,9 @@ func NewLogger(config *LoggerConfiguration) *Logger { fileLevel: zap.NewAtomicLevelAt(getZapLevel(config.FileLevel)), } - encoderConfig := zap.NewProductionEncoderConfig() - var encoder zapcore.Encoder - if config.ConsoleJson { - encoder = zapcore.NewJSONEncoder(encoderConfig) - } else { - encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder - encoder = zapcore.NewConsoleEncoder(encoderConfig) - } - if config.EnableConsole { writer := zapcore.Lock(os.Stdout) - core := zapcore.NewCore(encoder, writer, logger.consoleLevel) + core := zapcore.NewCore(makeEncoder(config.ConsoleJson), writer, logger.consoleLevel) cores = append(cores, core) } @@ -90,7 +91,7 @@ func NewLogger(config *LoggerConfiguration) *Logger { MaxSize: 100, Compress: true, }) - core := zapcore.NewCore(encoder, writer, logger.fileLevel) + core := zapcore.NewCore(makeEncoder(config.FileJson), writer, logger.fileLevel) cores = append(cores, core) } -- cgit v1.2.3-1-g7c22