Files
InnkeeperBot/log.go
2023-06-27 21:16:10 +02:00

37 lines
976 B
Go

package main
import (
"os"
"time"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var log *zap.SugaredLogger
func newDefaultProductionLogEncoder(colorize bool) zapcore.Encoder {
encCfg := zap.NewProductionEncoderConfig()
// if interactive terminal, make output more human-readable by default
encCfg.EncodeTime = func(ts time.Time, encoder zapcore.PrimitiveArrayEncoder) {
encoder.AppendString(ts.UTC().Format("2006/01/02 15:04:05.000"))
}
if colorize {
encCfg.EncodeLevel = zapcore.CapitalColorLevelEncoder
}
return zapcore.NewConsoleEncoder(encCfg)
}
func setupLogging() {
consoleStream := zapcore.Lock(os.Stderr)
consoleEncoder := newDefaultProductionLogEncoder(true)
noPriority := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {
return true
})
consoleCore := zapcore.NewCore(consoleEncoder, consoleStream, noPriority)
logger := zap.New(consoleCore)
defer logger.Sync() // flushes buffer, if any
log = logger.Sugar().Named("InnkeeperBot")
}