2024-01-22 18:05:51 +08:00
|
|
|
package loggerx
|
|
|
|
|
|
|
|
|
|
type loggerOption struct {
|
2024-01-23 00:12:08 +08:00
|
|
|
prefix string // 日志前缀
|
|
|
|
|
format string // text json
|
|
|
|
|
dir string // 文件目录
|
|
|
|
|
isGinLog bool
|
|
|
|
|
isGid bool
|
|
|
|
|
traceField string // trace字段
|
2024-01-23 13:37:51 +08:00
|
|
|
errorToInfo bool // 错误日志是否写入info日志
|
|
|
|
|
days int // 日志保存天数
|
2024-01-22 18:05:51 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func defaultOptions() loggerOption {
|
|
|
|
|
return loggerOption{
|
2024-01-23 00:12:08 +08:00
|
|
|
format: "json",
|
|
|
|
|
dir: "./log",
|
|
|
|
|
traceField: "trace_id",
|
2024-01-23 13:37:51 +08:00
|
|
|
days: 7,
|
2024-01-22 18:05:51 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Option func(*loggerOption)
|
|
|
|
|
|
2024-01-23 00:12:08 +08:00
|
|
|
// trace字段
|
|
|
|
|
func SetTraceField(traceField string) Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.traceField = traceField
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 错误日志是否写入info日志
|
|
|
|
|
func SetErrorToInfo() Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.errorToInfo = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-22 18:05:51 +08:00
|
|
|
// 日志的前缀
|
|
|
|
|
func SetPrefix(prefix string) Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.prefix = prefix
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 日志格式(默认json)
|
|
|
|
|
func SetFormat(format string) Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.format = format
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 是否保存gin的日志
|
|
|
|
|
func SetGinLog() Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.isGinLog = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-23 00:12:08 +08:00
|
|
|
// 文件路径
|
|
|
|
|
func SetDir(dir string) Option {
|
2024-01-22 18:05:51 +08:00
|
|
|
return func(o *loggerOption) {
|
2024-03-13 16:39:42 +08:00
|
|
|
if dir != "" {
|
|
|
|
|
o.dir = dir
|
|
|
|
|
}
|
2024-01-22 18:05:51 +08:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 保存goroutine的ID信息
|
|
|
|
|
func SetGID() Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.isGid = true
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-23 13:37:51 +08:00
|
|
|
// 日志保存天数
|
|
|
|
|
func SetDays(days int) Option {
|
|
|
|
|
return func(o *loggerOption) {
|
|
|
|
|
o.days = days
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-01-22 18:05:51 +08:00
|
|
|
// 文件切割规则
|
2024-01-23 00:12:08 +08:00
|
|
|
// 1.文件大小
|
|
|
|
|
// 2.时间A(年/月/日/时)
|
|
|
|
|
// 3.时间B(年/月-日)
|
|
|
|
|
// 4.时间C(年-月-日-时)
|
|
|
|
|
// 5.时间D(年-月-日)
|
2024-01-22 18:05:51 +08:00
|
|
|
// func SetFileSplit()
|
2024-01-23 00:12:08 +08:00
|
|
|
|
|
|
|
|
//
|