Passed
Push — main ( f6597a...58b626 )
by Yume
01:31 queued 12s
created

logger.CreateNewRelicLogger   B

Complexity

Conditions 8

Size

Total Lines 25
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 8
eloc 20
nop 0
dl 0
loc 25
rs 7.3333
c 0
b 0
f 0
1
package logger
2
3
import (
4
	"os"
5
6
	"github.com/memnix/memnix-rest/config"
7
	"github.com/memnix/memnix-rest/infrastructures"
8
	"github.com/newrelic/go-agent/v3/integrations/logcontext-v2/zerologWriter"
9
	"github.com/rs/zerolog"
10
	"github.com/rs/zerolog/diode"
11
	"github.com/rs/zerolog/log"
12
)
13
14
func CreateNewRelicLogger() {
15
	wr := diode.NewWriter(newRollingFile(), config.DiodeLoggerSize, config.DiodeLoggerTime, func(missed int) {
16
		log.Printf("Logger Dropped %d messages", missed)
17
	})
18
	writer := zerologWriter.New(wr, infrastructures.GetRelicApp())
19
	switch os.Getenv("LOG_LEVEL") {
20
	case "debug":
21
		zerolog.SetGlobalLevel(zerolog.DebugLevel)
22
		writer = zerologWriter.New(prettyLogger(), infrastructures.GetRelicApp())
23
24
	case "info":
25
		zerolog.SetGlobalLevel(zerolog.InfoLevel)
26
	case "warn":
27
		zerolog.SetGlobalLevel(zerolog.WarnLevel)
28
	case "error":
29
		zerolog.SetGlobalLevel(zerolog.ErrorLevel)
30
	case "none":
31
		zerolog.SetGlobalLevel(zerolog.Disabled)
32
	default:
33
		zerolog.SetGlobalLevel(zerolog.WarnLevel)
34
	}
35
36
	writer.DebugLogging(true)
37
38
	log.Logger = zerolog.New(writer)
39
}
40