代码拉取完成,页面将自动刷新
开箱即用的zap logger,基于tony bai的文章 https://tonybai.com/2021/07/14/uber-zap-advanced-usage/
软件架构说明
需要使用时,import路径是:gitee.com/alemond/log
安装执行:
go get gitee.com/alemond/log
写入文档:
file, err := os.OpenFile("./demo1.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
if err != nil {
panic(err)
}
logger := log.New(file, log.InfoLevel, log.JsonFmt)
// logger := log.New(file, log.InfoLevel, log.JsonFmt, log.AddCallerSkip(1))
log.ResetDefault(logger)
log.Info("demo")
多文件写入:
file1, err := os.OpenFile("./access.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
if err != nil {
panic(err)
}
file2, err := os.OpenFile("./error.log", os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0644)
if err != nil {
panic(err)
}
var tops = []log.TeeOption{
{
W: file1,
Lef: func(lvl log.Level) bool {
return lvl <= log.InfoLevel
},
},
{
W: file2,
Lef: func(lvl log.Level) bool {
return lvl > log.InfoLevel
},
},
}
logger := log.NewTee(tops)
log.ResetDefault(logger)
文件rotate
var tops = []log.TeeOption{
{
Filename: "access.log",
Ropt: log.RotateOptions{
MaxSize: 1,
MaxAge: 1,
MaxBackups: 3,
Compress: true,
},
Lef: func(lvl log.Level) bool {
return lvl <= log.InfoLevel
},
},
{
Filename: "error.log",
Ropt: log.RotateOptions{
MaxSize: 1,
MaxAge: 1,
MaxBackups: 3,
Compress: true,
},
Lef: func(lvl log.Level) bool {
return lvl > log.InfoLevel
},
},
}
logger := log.NewTeeWithRotate(tops)
log.ResetDefault(logger)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。