Version Inicial
This commit is contained in:
42
internal/logger/logger.go
Normal file
42
internal/logger/logger.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"log/slog"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Logger envuelve slog.Logger
|
||||
type Logger struct {
|
||||
*slog.Logger
|
||||
}
|
||||
|
||||
func (l *Logger) Fatalf(s string, err error) {
|
||||
panic("unimplemented")
|
||||
}
|
||||
|
||||
// parseLevel convierte string → slog.Level
|
||||
func parseLevel(level string) slog.Level {
|
||||
switch strings.ToUpper(level) {
|
||||
case "DEBUG":
|
||||
return slog.LevelDebug
|
||||
case "INFO":
|
||||
return slog.LevelInfo
|
||||
case "WARN", "WARNING":
|
||||
return slog.LevelWarn
|
||||
case "ERROR":
|
||||
return slog.LevelError
|
||||
default:
|
||||
return slog.LevelInfo
|
||||
}
|
||||
}
|
||||
|
||||
func New(level string, service string) *Logger {
|
||||
handler := slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
|
||||
Level: parseLevel(level),
|
||||
})
|
||||
base := slog.New(handler).With(
|
||||
"service", service,
|
||||
)
|
||||
return &Logger{base}
|
||||
}
|
||||
Reference in New Issue
Block a user