代码拉取完成,页面将自动刷新
package initialize
import (
"os"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gitee.com/jason-laf/mxshop/goods/srv/global"
)
// 1、S()可以获取一个并发安全的全局的sugarLogger
// 2、S函数和L函数很有用
// 3、日志级别从低到高:debug、info、warn、error、fatal
func DefaultLogger() {
c := zap.NewProductionConfig() // ProductionConfig中的Level为info,所以不会输出Info以下的日志(即debug)
c.OutputPaths = []string{ // 配置输出目标
global.Config.Server.LogPath, // 文件输出
"stderr", // 标准输出(控制台)
}
l, _ := c.Build() // 构建logger
zap.ReplaceGlobals(l) // 替换全局logger
}
func Logger() {
encoder := getEncoder()
writeSyncer := getLogWriter()
core := zapcore.NewCore(encoder, writeSyncer, zapcore.InfoLevel) // 第三个及之后的参数为写入文件的日志级别,ErrorLevel模式只记录error级别的日志
logger := zap.New(core, zap.AddCaller()) // AddCaller()添加调用方信息
zap.ReplaceGlobals(logger)
}
func getEncoder() zapcore.Encoder {
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder // 指定时间格式
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder // 使用大写
return zapcore.NewConsoleEncoder(encoderConfig) // 获取编码器,NewJSONEncoder()输出json格式,NewConsoleEncoder()输出普通文本格式
// return zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())
}
func getLogWriter() zapcore.WriteSyncer {
file, _ := os.OpenFile(global.Config.Server.LogPath, os.O_CREATE|os.O_RDWR|os.O_APPEND, 0644) // 日志文件存放目录
return zapcore.AddSync(file)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。