logger/logger.go

40 lines
879 B
Go
Raw Normal View History

2021-12-14 10:53:50 +08:00
package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var config LogConfig
var Say *zap.SugaredLogger
2021-12-14 11:08:57 +08:00
// 避免异常在第一次调用时初始化一个只打印到控制台的logger
func init() {
2021-12-15 09:21:08 +08:00
if Say == nil {
InitLogger(LogConfig{Mode: Dev, LokiEnable: false, FileEnable: false})
}
2021-12-14 11:08:57 +08:00
}
2021-12-14 10:53:50 +08:00
// InitLogger 初始化日志工具
func InitLogger(c LogConfig) {
config = c
var cores []zapcore.Core
// 生成输出到控制台的Core
consoleCore := initConsoleCore()
cores = append(cores, consoleCore)
// 生成输出到Loki的Core
if config.LokiEnable {
lokiCore := initLokiCore()
cores = append(cores, lokiCore)
}
// 输出到文件的Core
if config.FileEnable {
fileCore := initFileCore()
cores = append(cores, fileCore)
}
// 增加 caller 信息
logger := zap.New(zapcore.NewTee(cores...), zap.AddCaller())
Say = logger.Sugar()
}