Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 1.81 KB

issues.md

File metadata and controls

29 lines (19 loc) · 1.81 KB

Issues

Minor defects and "later" improvements: things noticed along the way and not fixed right away. Bigger plans are in todo.md. A resolved item is removed from here; history stays in git and CHANGELOG.md.

Format: title, where it shows up, what is wrong, how to fix it.

Duplicate keys on repeated WithContext

Where: NewLoggerCtx, NewNamedLoggerCtx and Logger.WithContext. What is wrong: the constructors already call WithContext; calling it again with the same context writes the field twice. How to fix: mark a logger that already has the context fields and do not add them again; or keep it as documentation only (currently described in docs/usage.md).

Caller is dropped when the level is raised at run time

Where: makeOptions in backend.go. What is wrong: caller is added only if the most verbose level at Init is debug or trace. A service started at info and raised to debug with SetLevel writes records without a caller. How to fix: add the caller based on the record level instead of at backend build time, after measuring the cost; or add a config option.

Package-level loggers do not follow Init

Where: logging.go, NewLogger and friends outside Default. What is wrong: a logger created before Init stays on the previous backend. How to fix: use logging.Default in package variables. This is documented; the mechanism stays as is.

Oversized PUT body to LevelsHandler returns 400

Where: applyLevelsRequest in levels_http.go. What is wrong: a body over the 4 KiB limit (http.MaxBytesReader) is reported as 400 together with other malformed requests; 413 would be more precise. How to fix: detect *http.MaxBytesError (Go 1.19+; on 1.18 compare the error text or count bytes manually) and answer 413.