all repos

onasty @ e6c5d1c07f0fcf559b84cc65671c6225b01a73de

a one-time notes service
5 files changed, 19 insertions(+), 24 deletions(-)
refactor: logger set default interface (#131)

* refactor(logger): set the default logger

* refactor: use new logger interface

* fix(e2e): naming

* docs(logger): add doc comment
Author: Smirnov Oleksandr ss2316544@gmail.com
Committed by: GitHub noreply@github.com
Committed at: 2025-06-09 18:11:44 +0300
Parent: 060f2e6
M cmd/api/main.go

@@ -49,12 +49,9 @@

cfg := config.NewConfig() // logger - logger, err := logger.NewCustomLogger(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) - if err != nil { + if err := logger.SetDefault(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine); err != nil { return err } - - slog.SetDefault(logger) // semi dev mode if !cfg.AppEnv.IsDevMode() {
M cmd/seed/main.go

@@ -22,11 +22,9 @@

func run(ctx context.Context) error { cfg := config.NewConfig() - logger, err := logger.NewCustomLogger(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) - if err != nil { + if err := logger.SetDefault(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine); err != nil { return err } - slog.SetDefault(logger) psql, err := psqlutil.Connect(ctx, cfg.PostgresDSN) if err != nil {
M e2e/e2e_test.go

@@ -3,7 +3,6 @@

import ( "context" "fmt" - "log/slog" "net/http" "testing" "time"

@@ -94,10 +93,8 @@ // and sets up the router for tests

func (e *AppTestSuite) initDeps() { cfg := e.getConfig() - logger, err := logger.NewCustomLogger(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) + err := logger.SetDefault(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) e.require.NoError(err) - - slog.SetDefault(logger) e.hasher = hasher.NewSHA256Hasher(cfg.PasswordSalt) e.jwtTokenizer = jwtutil.NewJWTUtil(cfg.JwtSigningKey, time.Hour)

@@ -106,7 +103,7 @@ sessionrepo := sessionrepo.New(e.postgresDB)

vertokrepo := vertokrepo.New(e.postgresDB) pwdtokrepo := passwordtokrepo.NewPasswordResetTokenRepo(e.postgresDB) - oauthProvider := newOauthProviderMock() + stubOAuthProvider := newOauthProviderMock() userepo := userepo.New(e.postgresDB) usercache := usercache.New(e.redisDB, cfg.CacheUsersTTL)

@@ -119,8 +116,8 @@ e.hasher,

e.jwtTokenizer, newMailerMockService(), usercache, - oauthProvider, - oauthProvider, + stubOAuthProvider, + stubOAuthProvider, cfg.JwtRefreshTokenTTL, cfg.VerificationTokenTTL, cfg.ResetPasswordTokenTTL,
M internal/logger/logger.go

@@ -9,10 +9,13 @@

"github.com/olexsmir/onasty/internal/transport/http/reqid" ) -type CustomLogger struct{ slog.Handler } +var ( + ErrUnknownLevel = errors.New("unknown log level") + ErrUnknownFormat = errors.New("unknown log format") +) -//nolint:err113 -func NewCustomLogger(lvl, format string, showLine bool) (*slog.Logger, error) { +// SetDefault configures and set default [slog.Logger] +func SetDefault(lvl, format string, showLine bool) error { loggerLevels := map[string]slog.Level{ "info": slog.LevelInfo, "debug": slog.LevelDebug,

@@ -22,7 +25,7 @@ }

logLevel, ok := loggerLevels[lvl] if !ok { - return nil, errors.New("unknown log level") + return ErrUnknownLevel } handlerOptions := &slog.HandlerOptions{

@@ -37,11 +40,14 @@ slogHandler = slog.NewJSONHandler(os.Stdout, handlerOptions)

case "text", "txt": slogHandler = slog.NewTextHandler(os.Stdout, handlerOptions) default: - return nil, errors.New("unknown log format") + return ErrUnknownFormat } - return slog.New(&CustomLogger{Handler: slogHandler}), nil + slog.SetDefault(slog.New(&CustomLogger{Handler: slogHandler})) + return nil } + +type CustomLogger struct{ slog.Handler } func (l *CustomLogger) Handle(ctx context.Context, r slog.Record) error { if requestID := reqid.GetContext(ctx); requestID != "" {
M mailer/main.go

@@ -38,12 +38,9 @@ if err != nil {

return err } - logger, err := logger.NewCustomLogger(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine) - if err != nil { + if err = logger.SetDefault(cfg.LogLevel, cfg.LogFormat, cfg.LogShowLine); err != nil { return err } - - slog.SetDefault(logger) //nolint:exhaustruct svc, err := micro.AddService(nc, micro.Config{