MCPcopy
hub / github.com/EverythingSuckz/TG-FileStreamBot / InitLogger

Function InitLogger

internal/utils/logger.go:14–52  ·  view source on GitHub ↗
(debugMode bool)

Source from the content-addressed store, hash-verified

12var Logger *zap.Logger
13
14func InitLogger(debugMode bool) {
15 customTimeEncoder := func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
16 layout := "02/01/2006 03:04:05 PM"
17 if debugMode {
18 layout = "02/01/2006 03:04:05.000 PM"
19 }
20 enc.AppendString(t.Format(layout))
21 }
22 consoleConfig := zap.NewDevelopmentEncoderConfig()
23 consoleConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
24 consoleConfig.EncodeTime = customTimeEncoder
25 consoleEncoder := zapcore.NewConsoleEncoder(consoleConfig)
26
27 fileEncoderConfig := zap.NewProductionEncoderConfig()
28 fileEncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
29 fileEncoder := zapcore.NewJSONEncoder(fileEncoderConfig)
30
31 fileWriter := zapcore.AddSync(&lumberjack.Logger{
32 Filename: "logs/app.log",
33 MaxSize: 10,
34 MaxBackups: 3,
35 MaxAge: 7,
36 Compress: true,
37 })
38
39 var consoleLevel zapcore.Level
40 if debugMode {
41 consoleLevel = zapcore.DebugLevel
42 } else {
43 consoleLevel = zapcore.InfoLevel
44 }
45
46 core := zapcore.NewTee(
47 zapcore.NewCore(consoleEncoder, zapcore.AddSync(os.Stdout), consoleLevel),
48 zapcore.NewCore(fileEncoder, fileWriter, zapcore.DebugLevel),
49 )
50
51 Logger = zap.New(core, zap.AddStacktrace(zapcore.FatalLevel))
52}

Callers 1

runAppFunction · 0.92

Calls

no outgoing calls

Tested by

no test coverage detected