forked from didi/sharingan
/
init.go
51 lines (40 loc) · 1.21 KB
/
init.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package zap
import (
"log"
"time"
"github.com/light-pan/sharingan/recorder-agent/common/conf"
"github.com/light-pan/sharingan/recorder-agent/common/path"
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
// Logger zapLog
var Logger *zap.Logger
func init() {
var err error
filename := conf.Handler.GetString("log.filename") // "log/record.log.%Y%m%d%H"
linkname := conf.Handler.GetString("log.linkname") // , "log/record.log"
maxHourAge := time.Duration(conf.Handler.GetInt("log.maxHourAge"))
maxHourRotate := time.Duration(conf.Handler.GetInt("log.maxHourRotate"))
// 文件拆分规则
rlogs, err := rotatelogs.New(
path.Root+"/"+filename,
rotatelogs.WithLinkName(path.Root+"/"+linkname),
rotatelogs.WithMaxAge(maxHourAge*time.Hour),
rotatelogs.WithRotationTime(maxHourRotate*time.Hour),
)
if err != nil {
log.Fatal("Init zap log error: ", err)
}
// 文件内容格式和之前保持一致
ws := zapcore.AddSync(rlogs)
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.LevelKey = ""
encoderConfig.TimeKey = ""
core := zapcore.NewCore(
zapcore.NewConsoleEncoder(encoderConfig),
ws,
zap.InfoLevel,
)
Logger = zap.New(core)
}