WithLevel decorates the logger and returns a contract.LevelLogger. Note: Don't inject contract.LevelLogger to dependency consumers directly as this will weaken the powerful abstraction of log.Logger. Only inject log.Logger, and converts log.Logger to contract.LevelLogger within the boundary of depe
(logger log.Logger)
| 204 | // log.Logger, and converts log.Logger to contract.LevelLogger within the |
| 205 | // boundary of dependency consumer if desired. |
| 206 | func WithLevel(logger log.Logger) LevelLogger { |
| 207 | if l, ok := logger.(LevelLogger); ok { |
| 208 | return l |
| 209 | } |
| 210 | return levelLogger{log.With(logger, "caller", log.Caller(5))} |
| 211 | } |