添加日志文件切分规则
This commit is contained in:
+29
-4
@@ -13,11 +13,36 @@ import (
|
||||
func (l *Logger) nowFileName(event string) string {
|
||||
// ioc, _ := time.LoadLocation("Asia/Shanghai")
|
||||
// timeDir := fmt.Sprint(time.Now().In(ioc).Format("2006/01/02/15")) // 2006-01-02 15:04:05
|
||||
timeDir := fmt.Sprint(time.Now().Local().Format("2006/01/02")) // 2006-01-02 15:04:05
|
||||
if l.channel != "" {
|
||||
timeDir = l.channel + "/" + timeDir
|
||||
|
||||
prefix := ""
|
||||
|
||||
switch l.option.fileSplit {
|
||||
case FileSplitTimeA:
|
||||
// (年/月/日/时)
|
||||
prefix = fmt.Sprint(time.Now().Local().Format("2006/01/02/15")) // 2006-01-02 15:04:05
|
||||
case FileSplitTimeB:
|
||||
// (年/月/日)
|
||||
prefix = fmt.Sprint(time.Now().Local().Format("2006/01/02")) // 2006-01-02 15:04:05
|
||||
case FileSplitTimeC:
|
||||
// (年/月-日)
|
||||
prefix = fmt.Sprint(time.Now().Local().Format("2006/01-02")) // 2006-01-02 15:04:05
|
||||
case FileSplitTimeD:
|
||||
// (年-月-日-时)
|
||||
prefix = fmt.Sprint(time.Now().Local().Format("2006-01-02-15")) // 2006-01-02 15:04:05
|
||||
case FileSplitTimeE:
|
||||
// (年-月-日)
|
||||
prefix = fmt.Sprint(time.Now().Local().Format("2006-01-02")) // 2006-01-02 15:04:05
|
||||
}
|
||||
path := l.option.dir + "/" + timeDir + "_" + event + ".log"
|
||||
|
||||
if prefix != "" {
|
||||
prefix = prefix + "_"
|
||||
}
|
||||
|
||||
// timeDir := fmt.Sprint(time.Now().Local().Format("2006/01/02")) // 2006-01-02 15:04:05
|
||||
if l.channel != "" {
|
||||
prefix = l.channel + "/" + prefix
|
||||
}
|
||||
path := l.option.dir + "/" + prefix + event + ".log"
|
||||
// fmt.Println(filepath.Abs(path))
|
||||
return path
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ func TestLogger(t *testing.T) {
|
||||
context.Background(),
|
||||
loggerx.SetErrorToInfo(),
|
||||
loggerx.SetExtraDriver(b, Print{}),
|
||||
loggerx.SetFileSplit(loggerx.FileSplitTimeA),
|
||||
)
|
||||
|
||||
l.Error(context.Background(), "test error")
|
||||
|
||||
+26
-2
@@ -12,6 +12,8 @@ type loggerOption struct {
|
||||
errorToInfo bool // 错误日志是否写入info日志
|
||||
days int // 日志保存天数
|
||||
drivers []io.Writer // 文件落盘驱动器
|
||||
fileSplit FileSplit // 文件切割规则
|
||||
sizeSplit int // 根据文件大小切割
|
||||
}
|
||||
|
||||
func defaultOptions() loggerOption {
|
||||
@@ -22,6 +24,7 @@ func defaultOptions() loggerOption {
|
||||
dir: "./log",
|
||||
traceField: "trace_id",
|
||||
days: 7,
|
||||
fileSplit: FileSplitTimeE,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,6 +112,27 @@ func SetExtraDriver(ds ...io.Writer) Option {
|
||||
// 3.时间B(年/月-日)
|
||||
// 4.时间C(年-月-日-时)
|
||||
// 5.时间D(年-月-日)
|
||||
// func SetFileSplit()
|
||||
func SetFileSplit(split FileSplit) Option {
|
||||
return func(o *loggerOption) {
|
||||
o.fileSplit = split
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
type FileSplit string
|
||||
|
||||
const (
|
||||
FileSplitNone FileSplit = "none" // 不切割
|
||||
FileSplitTimeA FileSplit = "timeA" // (年/月/日/时)
|
||||
FileSplitTimeB FileSplit = "timeB" // (年/月/日)
|
||||
FileSplitTimeC FileSplit = "timeC" // (年/月-日)
|
||||
FileSplitTimeD FileSplit = "timeD" // (年-月-日-时)
|
||||
FileSplitTimeE FileSplit = "timeE" // (年-月-日)
|
||||
|
||||
)
|
||||
|
||||
// 根据文件大小切割(暂时未生效)
|
||||
func SetSizeSplit(m int) Option {
|
||||
return func(o *loggerOption) {
|
||||
o.sizeSplit = m
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user