package logs import ( "os" "runtime" "time" "cloud.o-forge.io/core/oc-lib/config" "github.com/rs/zerolog" ) var logger zerolog.Logger // 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 GetLogger() zerolog.Logger { return logger } func SetLogger(l zerolog.Logger) { logger = l } func CreateLogger(funcName string) zerolog.Logger { url := config.GetConfig().LokiUrl if url != "" { labels := map[string]string{ "app": config.GetAppName(), "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 }