mirror of
https://github.com/retailcrm/mg-transport-core.git
synced 2024-11-22 21:26:05 +03:00
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
|
package logger
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
|
||
|
"go.uber.org/zap"
|
||
|
"go.uber.org/zap/zapcore"
|
||
|
)
|
||
|
|
||
|
func NewZap(debug bool) *zap.Logger {
|
||
|
level := zapcore.InfoLevel
|
||
|
if debug {
|
||
|
level = zapcore.DebugLevel
|
||
|
}
|
||
|
log, err := zap.Config{
|
||
|
Level: zap.NewAtomicLevelAt(level),
|
||
|
Development: debug,
|
||
|
Encoding: "console",
|
||
|
EncoderConfig: EncoderConfig(),
|
||
|
OutputPaths: []string{"stdout"},
|
||
|
ErrorOutputPaths: []string{"stderr"},
|
||
|
}.Build()
|
||
|
if err != nil {
|
||
|
panic(err)
|
||
|
}
|
||
|
return log
|
||
|
}
|
||
|
|
||
|
func EncoderConfig() zapcore.EncoderConfig {
|
||
|
return zapcore.EncoderConfig{
|
||
|
MessageKey: "message",
|
||
|
LevelKey: "level",
|
||
|
TimeKey: "timestamp",
|
||
|
NameKey: "logger",
|
||
|
CallerKey: "caller",
|
||
|
FunctionKey: zapcore.OmitKey,
|
||
|
StacktraceKey: "",
|
||
|
LineEnding: "\n",
|
||
|
EncodeLevel: func(level zapcore.Level, encoder zapcore.PrimitiveArrayEncoder) {
|
||
|
encoder.AppendString("level=" + level.String())
|
||
|
},
|
||
|
EncodeTime: func(t time.Time, encoder zapcore.PrimitiveArrayEncoder) {
|
||
|
encoder.AppendString("time=" + t.Format(time.RFC3339))
|
||
|
},
|
||
|
EncodeDuration: zapcore.StringDurationEncoder,
|
||
|
EncodeCaller: func(caller zapcore.EntryCaller, encoder zapcore.PrimitiveArrayEncoder) {
|
||
|
encoder.AppendString("caller=" + caller.TrimmedPath())
|
||
|
},
|
||
|
EncodeName: zapcore.FullNameEncoder,
|
||
|
ConsoleSeparator: " ",
|
||
|
}
|
||
|
}
|