32 lines
660 B
Go
32 lines
660 B
Go
package log
|
|
|
|
import (
|
|
"flag"
|
|
"log/slog"
|
|
"os"
|
|
)
|
|
|
|
func Logger() {
|
|
// Get logger arguments
|
|
var loglevelStr string
|
|
flag.StringVar(&loglevelStr, "loglevel", "ERROR", "set log level")
|
|
flag.Parse()
|
|
|
|
loglevel := new(slog.LevelVar)
|
|
if loglevelStr == "DEBUG" {
|
|
loglevel.Set(slog.LevelDebug)
|
|
} else if loglevelStr == "INFO" {
|
|
loglevel.Set(slog.LevelInfo)
|
|
} else if loglevelStr == "WARN" {
|
|
loglevel.Set(slog.LevelWarn)
|
|
} else {
|
|
loglevel.Set(slog.LevelError)
|
|
}
|
|
// Start logger
|
|
logger := slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
|
Level: loglevel,
|
|
}))
|
|
slog.SetDefault(logger)
|
|
slog.Debug("Logging started", "level", loglevel)
|
|
}
|