Go:lumberjack包实现日志的存储和自动管理
lumberjack包可以实现的功能:
(1)控制最多保留的日志文件数量
(2)保留最近多少天的日志文件
(3)每个日志文件的大小
lumberjack的Logger结构体如下
type Logger struct {
//写日志的文件名称
Filename string `json:"filename" yaml:"filename"`
//每个日志文件长度的最大大小,默认100M。
MaxSize int `json:"maxsize" yaml:"maxsize"`
//日志保留的最大天数(只保留最近多少天的日志)
MaxAge int `json:"maxage" yaml:"maxage"`
//只保留最近多少个日志文件,用于控制程序总日志的大小
MaxBackups int `json:"maxbackups" yaml:"maxbackups"`
//是否使用本地时间,默认使用UTC时间
LocalTime bool `json:"localtime" yaml:"localtime"`
// 是否压缩日志文件,压缩方法gzip
Compress bool `json:"compress" yaml:"compress"`
size int64 //记录当前日志文件的字节数
file *os.File //当前的日志文件
mu sync.Mutex
millCh chan bool
startMill sync.Once
}