logger/logger.go
2021-12-14 11:08:57 +08:00

38 lines
858 B
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var config LogConfig
var Say *zap.SugaredLogger
// 避免异常在第一次调用时初始化一个只打印到控制台的logger
func init() {
InitLogger(LogConfig{Mode: Dev, LokiEnable: false, FileEnable: false})
}
// 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()
}