/
loginit.go
59 lines (50 loc) · 1.62 KB
/
loginit.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
package logger
import (
"encoding/json"
"fmt"
"os"
)
//Config defines the struct for the application configuration
type Config struct {
LogConfig struct {
EnableConsole bool `json:"enableConsole"`
ConsoleLevel string `json:"consoleLevel"`
ConsoleJSONFormat bool `json:"consoleJSONformat"`
EnableFile bool `json:"enableFile"`
FileLevel string `json:"fileLevel"`
FileJSONFormat bool `json:"fileJSONformat"`
FileLocation string `json:"fileLocation"`
MaxSize int `json:"maxSize"` //MB
Compress bool `json:"compress"`
MaxAge int `json:"maxAge"` //Days
} `json:"logconfig"`
}
//LoadConfiguration loads the configuration for the application
func LoadConfiguration(filename string) (config Config, err error) {
configfile, err := os.Open(filename)
defer configfile.Close()
if err != nil {
return config, fmt.Errorf("LoadConfiguration failure: %s", err.Error())
}
jsonParser := json.NewDecoder(configfile)
err = jsonParser.Decode(&config)
return config, err
}
//InitLogger creates a zap logger for use in the program
func InitLogger() Logger {
config, err := LoadConfiguration("config.json")
if err != nil{
log.Fatalf("Failed to load configuration: %s", err.Error())
}
logconfig := config.LogConfig
err = NewLogger(logconfig, InstanceZapLogger)
if err != nil {
log.Fatalf("Could not instantiate log %s", err.Error())
}
// err = NewLogger(logconfig, InstanceLogrusLogger)
// if err != nil {
// log.Fatalf("Could not instantiate log %s", err.Error())
// }
// contextLogger := WithFields(Fields{"key1": "value1"})
return log
}