日志模块,详细情可以参考项目https://github.com/zngw/golib
go get -u github.com/zngw/log
日志有三种方式初始化。
- 不初始化,直接使用
- 这时候会用到默认init中的参数初始化
- 默认为终端、文件双重显示;日志文件为
logs/file.log
;保留30天;显示所有tags
- 简易初始化,兼容最初版本的日志接口,只设置日志文件和tags
- 日志文件为空时为终端显示
- 设置文件时只输出到文件,日志文件保留30天
err := log.Init("logs/file.log", nil)
if err != nil {
panic(err)
}
- 完整初始化
- logWay: all-输出到文件和控制台;file-输出到文件;console-输出到控制台
- logFile: 日志文件
- logLevel: 日志等级
- maxDays: 日志保留天数
- disableLogColor: 是否显示颜色
- tags: 日志显示tag
log.InitLog("all", "logs/file.log", "info", 30, false, []string{"sys", "net"})
可以使用log.New("日志模块名")
方法创建多个日志模块,为不同的功能记录不同的日志文件和格式。
如可以将错误日志独立出来,也可以根据不同的逻辑写不同的日志等
errorlog := log.New("error")
errorlog.Init("all", "logs/error.log", "error", 30, false, nil)
package main
import (
"github.com/zngw/log"
)
func main() {
// 日志有三种方式初始化。
// 第一种
// 不初始化,直接使用
// 这时候会用到默认init中的参数初始化
// 默认为终端、文件双重显示;日志文件为`logs/file.log`;保留30天;显示所有tags
// 第二种
// 简易初始化,兼容最初版本的日志接口,只设置日志文件和tags
// 日志文件为空时为终端显示,
// 设置文件时只输出到文件,日志文件保留30天
//err := log.Init("logs/file.log", nil)
//if err != nil {
// panic(err)
//}
// 第三种
// 完整初始化
// logWay: all-输出到文件和控制台;file-输出到文件;console-输出到控制台
// logFile: 日志文件
// logLevel: 日志等级
// maxDays: 日志保留天数
// disableLogColor: 是否显示颜色
// tags: 日志显示tag
log.InitLog("all", "logs/file.log", "info", 30, false, []string{"sys", "net"})
// 输出: 2021/11/07 02:53:59.148 [I] [main.go:39] [Tag:sys] Hello World
log.Info("sys", "Hello World")
// 输出: 2021/11/07 02:53:59.148 [I] [main.go:42] [Tag:net] Hello Golang
log.Info("net", "Hello Golang")
// 这条日志不在显示的tag内,故不输出
log.Info("test", "Hello zngw")
// 输出错误日志: 2021/11/07 02:53:59.148 [E] [main.go:48] [Tag:sys] Error
log.Error("sys", "Error")
// 创建多个日志模块
// 错误日志
errorlog := log.New("error")
errorlog.Init("all", "logs/error.log", "error", 30, false, nil)
// 独立日志模块
mylog := log.New("mylog")
mylog.Init("all", "logs/mylog.log", "info", 30, false, []string{"sys", "net"})
errorlog.Error("net", "Error Log")
mylog.Info("sys", "MyLog")
}