forked from aberestyak/elasticsearch-security-operator
/
logger.go
45 lines (39 loc) · 1.13 KB
/
logger.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
package logger
import (
"os"
"strings"
nested "github.com/antonfisher/nested-logrus-formatter"
log "github.com/sirupsen/logrus"
)
const (
defaultLogLevel = "info"
defaultLogFormat = "nested"
)
// Init initialize logger
func Init() {
logLevelValue := os.Getenv("LOG_LEVEL")
logLevel, err := log.ParseLevel(logLevelValue)
if err != nil {
log.Debugf("Wrong log level set [%v], using default [%v]", logLevelValue, defaultLogLevel)
logLevel = log.InfoLevel
}
log.SetLevel(logLevel)
logFormatValue := strings.ToLower(os.Getenv("LOG_FORMAT"))
if logFormatValue != "text" && logFormatValue != "json" && logFormatValue != defaultLogFormat {
log.Debugf("Wrong log format set [%v], using default [%v]", logFormatValue, defaultLogFormat)
logFormatValue = defaultLogFormat
}
if logFormatValue == "json" {
log.SetFormatter(&log.JSONFormatter{})
} else if logFormatValue == "text" {
log.SetFormatter(&log.TextFormatter{
FullTimestamp: true,
DisableLevelTruncation: true,
})
} else if logFormatValue == defaultLogFormat {
log.SetFormatter(&nested.Formatter{
HideKeys: true,
ShowFullLevel: true,
})
}
}