go 标准日志库使用
func init() {
logFile, err := os.OpenFile("./log.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644)
if err != nil {
fmt.Println("open log file failed, err:", err)
return
}
log.SetOutput(logFile)
log.SetFlags(log.Llongfile | log.Lmicroseconds | log.Ldate)
}
lumberjack日志滚动记录器
lumberjack
是一个日志滚动记录器。可以把日志文件根据大小、日期等分割。一般情况下,lumberjack配合其他日志库,实现日志的滚动(rolling)记录。
安装:
go get -u github.com/natefinch/lumberjack
使用:
func init() {
logger := &lumberjack.Logger{
Filename: "log.log",
MaxSize: 500,
MaxBackups: 3,
MaxAge: 5,
Compress: false,
}
//同时写文件和屏幕
multiWriter := io.MultiWriter(os.Stdout, logger)
log.SetOutput(multiWriter)
}
Filename: 日志文件的位置
MaxSize:在进行切割之前,日志文件的最大大小(以MB为单位)
MaxBackups:保留旧文件的最大个数
MaxAges:保留旧文件的最大天数
Compress:是否压缩/归档旧文件