-
Notifications
You must be signed in to change notification settings - Fork 1
/
utils.go
79 lines (70 loc) · 1.7 KB
/
utils.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package proc
import (
"github.com/aberic/gnomon"
"github.com/aberic/gnomon/log"
"os"
)
const (
procDir = "PROC_DIR"
ListenAddr = "LISTEN_ADDR"
hostname = "HOSTNAME"
timeDistanceEnv = "TIME_DISTANCE"
)
// FileRootPath 读取文件根路径
func FileRootPath() string {
return gnomon.EnvGetD(procDir, "/proc")
}
const (
// CodeSuccess 成功
CodeSuccess = iota
// CodeFile 失败
CodeFile
)
// Resp 通用返回结构
type Resp struct {
Code int
ErrMsg string
Data interface{}
}
// ResponseSuccess 返回成功结构
func ResponseSuccess(model interface{}) *Resp {
return &Resp{
Code: CodeSuccess,
ErrMsg: "",
Data: model,
}
}
// ResponseFail 返回失败结构
func ResponseFail(err error) *Resp {
return &Resp{
Code: CodeFile,
ErrMsg: err.Error(),
Data: nil,
}
}
const (
// ProductionEnv 是否生产环境,在生产环境下控制台不会输出任何日志
ProductionEnv = "PRODUCTION"
// LogDirEnv 日志文件目录
LogDirEnv = "LOG_DIR"
// LogFileMaxSizeEnv 每个日志文件保存的最大尺寸 单位:M
LogFileMaxSizeEnv = "LOG_FILE_MAX_SIZE"
// LogFileMaxAgeEnv 文件最多保存多少天
LogFileMaxAgeEnv = "LOG_FILE_MAX_AGE"
// LogUtcEnv CST & UTC 时间
LogUtcEnv = "LOG_UTC"
// LogLevelEnv 日志级别(debugLevel/infoLevel/warnLevel/ErrorLevel/panicLevel/fatalLevel)
LogLevelEnv = "LOG_LEVEL"
)
// InitLog 初始化log日志组件
//
// 全局main入口均可调用执行
func InitLog() {
log.Fit(
gnomon.EnvGetD(LogLevelEnv, "Debug"),
gnomon.EnvGetD(LogDirEnv, os.TempDir()),
gnomon.EnvGetIntD(LogFileMaxSizeEnv, 1024),
gnomon.EnvGetIntD(LogFileMaxAgeEnv, 7),
gnomon.EnvGetBool(LogUtcEnv),
gnomon.EnvGetBool(ProductionEnv))
}