v0.7.0
Released: 2026-05-01 Tag: v0.7.0 Type: Minor — new feature (slog logger registry) PR: #41 — feat/issue-32-slog-logger-registry
What Changed
logging / logging/slog — Named logger registry
New package providing deterministic named logger access backed by log/slog.
logger, err := application.GetLogger("auth")
logger.Infof("user %s authenticated", userID)
app — GetLogger accessor
logger, err := application.GetLogger(name string) (logging.Logger, error)
- Pre-
UseConfig: returnslogging.ErrLoggingNotReady. - Empty name: returns
logging.ErrLoggerNameRequired. - Same name → same instance (deterministic, isolated per
Application).
Config keys
logging:
enabled: true
level: info # debug | info | warn | error
format: json # json | text
loggers:
auth:
level: debug
billing:
enabled: false
Env overrides
COMMON_FWK_LOGGING_ENABLED=true
COMMON_FWK_LOGGING_LEVEL=warn
COMMON_FWK_LOGGING_FORMAT=json
COMMON_FWK_LOGGING_LOGGERS_AUTH_LEVEL=debug
Precedence matrix
| Setting | Resolution |
|---|---|
enabled | per-logger override → root |
level | per-logger override → root |
format | root only |
Output contract
All records include: logger, ts, level, msg.
Loki guidance
Use collector-first integration (Promtail / OTel Collector → Loki). Do not couple the app directly to a Loki HTTP sink.
Compatibility
- No breaking changes.
GetLoggeris additive. - Logger registry is isolated per
Applicationinstance.