46 lines
1000 B
Go
Raw Normal View History

package application
import (
"log/slog"
"os"
2025-09-15 09:33:25 +05:00
"strings"
)
const (
defaultLogLevel slog.Level = slog.LevelInfo
logLevelEnvVar = "BUNKERD_LOG_LEVEL"
)
func (a *Application) initializeLogger() {
2025-09-15 09:33:25 +05:00
logLevel := defaultLogLevel
logLevelAsString, found := os.LookupEnv(logLevelEnvVar)
if found {
switch strings.ToLower(logLevelAsString) {
case "debug":
logLevel = slog.LevelDebug
case "info":
logLevel = slog.LevelInfo
case "warn":
logLevel = slog.LevelWarn
case "error":
logLevel = slog.LevelError
}
}
slog.Warn("Setting log level.", "level", logLevel.String())
a.baseLogger = slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
AddSource: true,
2025-09-15 09:33:25 +05:00
Level: logLevel,
}))
a.appLogger = a.baseLogger.With("module", "application")
}
// NewLogger creates new sub-instance of base logger and adds some additional data to it for persistent output.
func (a *Application) NewLogger(withs ...interface{}) *slog.Logger {
return a.baseLogger.With(withs...)
}