在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
日志库logo gitee地址传送门:https://gitee.com/zhangyafeii/logo 日志库需求分析1. 支持往不同的地方输出日志2. 日志分级别
3. 日志要支持开关控制4. 完整的日志记录要包含时间、行号、文件名、日志级别、日志信息5. 打印日志可以定义输出格式,至少有text和json两种格式 6. 日志文件要切割
关闭当前文件 rename 打开一个新的日志文件 FileObj
在日志结构体中设置一个字段记录上一次切割的小时数 不一致就要切割
在日志结构体中设置一个字段记录最大文件保留时长 则删除
1. 在日志结构体中设置一个字段记录最大保留文件个数 2. 定时扫描所有日志文件。 若日志文件数量超出指定个数时,保留指定个数最新文件,其余文件删除 7. 性能优化:异步打印日志 使用示例go get -u gitee.com/zhangyafeii/logo 1. console打印package main import "gitee.com/zhangyafeii/logo" var myLog logo.Logger func main() { myLog := logo.NewConsoleLog("debug") myLog.SetPrefix("[MY-LOG]") myLog.Debug("这是一条Debug日志") myLog.Trace("这是一条Trace日志") myLog.Info("这是一条Info日志") myLog.Warning("这是一条Warning日志") name := "zhangyafei" myLog.Error("这是一条Error日志, name:%s", name) myLog.Fatal("这是一条Fatal日志") } 终端 E:\go\project\src\go_Logger>go_Logger.exe [MY-LOG] 2020/06/11 - 12:22:04 ▶ Debug E:/go/project/src/go_Logger/main.go:main:25 这是一条Debug日志 [MY-LOG] 2020/06/11 - 12:22:04 ▶ Trace E:/go/project/src/go_Logger/main.go:main:26 这是一条Trace日志 [MY-LOG] 2020/06/11 - 12:22:04 ▶ Info E:/go/project/src/go_Logger/main.go:main:27 这是一条Info日志 [MY-LOG] 2020/06/11 - 12:22:04 ▶ Warning E:/go/project/src/go_Logger/main.go:main:28 这是一条Warning日志 [MY-LOG] 2020/06/11 - 12:22:04 ▶ Error E:/go/project/src/go_Logger/main.go:main:30 这是一条Error日志, name:zhangyafei [MY-LOG] 2020/06/11 - 12:22:04 ▶ Fatal E:/go/project/src/go_Logger/main.go:main:31 这是一条Fatal日志 2. 写入文件-按文件大小切割package main import "gitee.com/zhangyafeii/logo" var myLog logo.Logger func main() { myLog = logo.NewFileLog("info", "log", "mylog.log", 10*1024*1024) myLog.SetPrefix("[MY-LOG]") myLog.Debug("这是一条Debug日志") myLog.Trace("这是一条Trace日志") myLog.Info("这是一条Info日志") myLog.Warning("这是一条Warning日志") name := "zhangyafei" myLog.Error("这是一条Error日志, name:%s", name) myLog.Fatal("这是一条Fatal日志") } log/mylog.log [MY-LOG] 2020/06/11 - 12:24:20 ▶ Info E:/go/project/src/go_Logger/main.go:main:27 这是一条Info日志 [MY-LOG] 2020/06/11 - 12:24:20 ▶ Warning E:/go/project/src/go_Logger/main.go:main:28 这是一条Warning日志 [MY-LOG] 2020/06/11 - 12:24:20 ▶ Error E:/go/project/src/go_Logger/main.go:main:30 这是一条Error日志, name:zhangyafei [MY-LOG] 2020/06/11 - 12:24:20 ▶ Fatal E:/go/project/src/go_Logger/main.go:main:31 这是一条Fatal日志 log/mylog.log.err [MY-LOG] 2020/06/11 - 12:24:20 ▶ Error E:/go/project/src/go_Logger/main.go:main:30 这是一条Error日志, name:zhangyafei [MY-LOG] 2020/06/11 - 12:24:20 ▶ Fatal E:/go/project/src/go_Logger/main.go:main:31 这是一条Fatal日志 文件大小切割 package main import "gitee.com/zhangyafeii/logo" var myLog logo.Logger func main() { myLog = logo.NewFileLog("info", "log", "mylog.log", 10*1024*1024) myLog.SetPrefix("[MY-LOG]") for { myLog.Debug("这是一条Debug日志") myLog.Trace("这是一条Trace日志") myLog.Info("这是一条Info日志") myLog.Warning("这是一条Warning日志") name := "zhangyafei" myLog.Error("这是一条Error日志, name:%s", name) myLog.Fatal("这是一条Fatal日志") } } 3. 写入文件-按文件大小和时间切割package main import "gitee.com/zhangyafeii/logo" var myLog logo.Logger func main() { myLog = logo.NewFileLogWithMaxAge("Debug", "log", "mylog.log", 10*1024*1024, 24) myLog.SetPrefix("[MY-LOG]") for { myLog.Debug("这是一条Debug日志") myLog.Trace("这是一条Trace日志") myLog.Info("这是一条Info日志") myLog.Warning("这是一条Warning日志") name := "zhangyafei" myLog.Error("这是一条Error日志, name:%s", name) myLog.Fatal("这是一条Fatal日志") } } 更新日志
|
请发表评论