package logs import ( "os" "runtime" "time" "github.com/rs/zerolog" ) var logger zerolog.Logger var appname string // logs.CreateLogger // Create a new logger // Parameters: // - appname: string : the name of the application using oclib // - url: string : the url of a loki logger, console log only if "" // Returns: // - zerolog.Logger : the logger that will log for the library and the app func SetAppName(name string) { appname = name } func GetAppName() string { return appname } func GetLogger() zerolog.Logger { return logger } func SetLogger(l zerolog.Logger) { logger = l } func CreateLogger(funcName string, url string) zerolog.Logger { if url != "" { labels := map[string]string{ "app": appname, "code": "go", "platform": runtime.GOOS, "function": funcName, } lokiWriter := NewLokiWriter(url, labels) consoleWriter := zerolog.ConsoleWriter{Out: os.Stdout, TimeFormat: time.RFC3339} multiWriter := zerolog.MultiLevelWriter(consoleWriter, lokiWriter) logger = zerolog.New(multiWriter).With().Timestamp().Logger() } else { logger = zerolog.New(os.Stdout).With().Timestamp().Logger() } return logger }