/
env.go
83 lines (70 loc) · 1.77 KB
/
env.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
80
81
82
83
package eapp
import (
"os"
"strings"
"github.com/gotomicro/ego/core/constant"
)
var (
appMode string
appRegion string
appZone string
appInstance string // 通常是实例的机器名
egoDebug string
egoLogPath string
egoLogAddApp string
egoTraceIDName string
egoLogExtraKeys []string
)
func initEnv() {
appMode = os.Getenv(constant.EnvAppMode)
appRegion = os.Getenv(constant.EnvAppRegion)
appZone = os.Getenv(constant.EnvAppZone)
appInstance = os.Getenv(constant.EnvAppInstance)
if appInstance == "" {
appInstance = HostName()
}
egoDebug = os.Getenv(constant.EgoDebug)
egoLogPath = os.Getenv(constant.EgoLogPath)
egoLogAddApp = os.Getenv(constant.EgoLogAddApp)
egoTraceIDName = os.Getenv(constant.EgoTraceIDName)
if egoTraceIDName == "" {
egoTraceIDName = "x-trace-id"
}
egoLogExtraKeys = strings.Split(os.Getenv(constant.EgoLogExtraKeys), ",")
}
// AppMode 获取应用运行的环境
func AppMode() string {
return appMode
}
// AppRegion 获取APP运行的地区
func AppRegion() string {
return appRegion
}
// AppZone 获取应用运行的可用区
func AppZone() string {
return appZone
}
// AppInstance 获取应用实例,通常是实例的机器名
func AppInstance() string {
return appInstance
}
// IsDevelopmentMode 判断是否是生产模式
func IsDevelopmentMode() bool {
return egoDebug == "true"
}
// EgoLogPath 获取应用日志路径
func EgoLogPath() string {
return egoLogPath
}
// EnableLoggerAddApp 日志是否记录应用名信息
func EnableLoggerAddApp() bool {
return egoLogAddApp == "true"
}
// EgoTraceIDName 获取链路名称
func EgoTraceIDName() string {
return egoTraceIDName
}
// EgoLogExtraKeys 获取自定义loggerKeys
func EgoLogExtraKeys() []string {
return egoLogExtraKeys
}