This commit is contained in:
Alex Shevchuk
2025-08-18 17:12:04 +03:00
commit d84487d238
157 changed files with 160686 additions and 0 deletions

40
internal/logger/logger.go Normal file
View File

@@ -0,0 +1,40 @@
package logger
import (
"errors"
"log/slog"
"os"
)
const (
EnvLocal = "local"
EnvDebug = "debug"
EnvProd = "production"
)
var ErrInvalidLogLevel = errors.New("invalid log level")
func New(env string) (*slog.Logger, error) {
switch env {
case EnvLocal:
return slog.New(slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{
AddSource: true,
Level: slog.LevelInfo,
})), nil
case EnvDebug:
return slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
AddSource: false,
Level: slog.LevelDebug,
})), nil
case EnvProd:
return slog.New(slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{
AddSource: false,
Level: slog.LevelError,
})), nil
default:
return nil, ErrInvalidLogLevel
}
}