/
core_file.go
55 lines (47 loc) · 1.34 KB
/
core_file.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
52
53
54
55
package XLogger
import (
"github.com/bb-orz/goinfras"
"go.uber.org/zap/zapcore"
"io"
"os"
)
// 文件记录核心
func NewFileSyncCore(cfg *Config) (zapcore.Core, error) {
var err error
var file io.Writer
// 创建日志文件
fileLogName := cfg.FileLogName
if file, err = goinfras.OpenFile(fileLogName, os.O_CREATE|os.O_RDWR|os.O_APPEND, os.ModePerm); err != nil {
return nil, err
}
// 转成符合zapcore的输出接口类型
fileSyncer := zapcore.AddSync(file)
return zapcore.NewCore(
// 日志格式配置
zapcore.NewJSONEncoder(defaultFormatConfig()),
// 日志异步输出配置
zapcore.NewMultiWriteSyncer(fileSyncer),
// 日志级别
SettingLevelEnableFunc(cfg),
), nil
}
// 异步日志记录错误文件记录核心
func NewFileSyncErrorCore(cfg *Config) (zapcore.Core, error) {
var err error
var file io.Writer
// 创建日志文件
syncErrorLogName := cfg.SyncErrorLogName
if file, err = goinfras.OpenFile(syncErrorLogName, os.O_CREATE|os.O_RDWR|os.O_APPEND, os.ModePerm); err != nil {
return nil, err
}
// 转成符合zapcore的输出接口类型
fileSyncer := zapcore.AddSync(file)
return zapcore.NewCore(
// 日志格式配置
zapcore.NewJSONEncoder(defaultFormatConfig()),
// 日志异步输出配置
zapcore.NewMultiWriteSyncer(fileSyncer),
// 日志级别
SettingLevelEnableFunc(cfg),
), nil
}