/*
* Copyright (C) 2024 Jonni Liljamo <jonni@liljamo.com>
*
* This file is licensed under GPL-3.0-or-later, see NOTICE and LICENSE for
* more information.
*/
// Package log provides logging utilities.
package log
import (
"log/slog"
"os"
"path/filepath"
)
// InitDefaultLogger sets and returns the default slog logger.
func InitDefaultLogger() *slog.Logger {
replace := func( /* groups */ _ []string, a slog.Attr) slog.Attr {
if a.Key == slog.SourceKey {
source := a.Value.Any().(*slog.Source)
source.File = filepath.Base(source.File)
}
return a
}
logger := slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
Level: slog.LevelInfo,
AddSource: true,
ReplaceAttr: replace,
}))
slog.SetDefault(logger)
return logger
}