Releases: go-logr/logr
v1.4.2
What's Changed
- Fix lint: named but unused params by @thockin in #268
- Add a Go report card, fix lint by @thockin in #271
- funcr: Handle nested empty groups properly by @thockin in #274
Dependencies:
- build(deps): bump github/codeql-action from 3.22.11 to 3.22.12 by @dependabot in #254
- build(deps): bump github/codeql-action from 3.22.12 to 3.23.0 by @dependabot in #256
- build(deps): bump actions/upload-artifact from 4.0.0 to 4.1.0 by @dependabot in #257
- build(deps): bump github/codeql-action from 3.23.0 to 3.23.1 by @dependabot in #259
- build(deps): bump actions/upload-artifact from 4.1.0 to 4.2.0 by @dependabot in #260
- build(deps): bump actions/upload-artifact from 4.2.0 to 4.3.0 by @dependabot in #263
- build(deps): bump github/codeql-action from 3.23.1 to 3.23.2 by @dependabot in #262
- build(deps): bump github/codeql-action from 3.23.2 to 3.24.0 by @dependabot in #264
- build(deps): bump actions/upload-artifact from 4.3.0 to 4.3.1 by @dependabot in #266
- build(deps): bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by @dependabot in #267
- build(deps): bump github/codeql-action from 3.24.0 to 3.24.3 by @dependabot in #270
- build(deps): bump github/codeql-action from 3.24.3 to 3.24.5 by @dependabot in #272
- build(deps): bump github/codeql-action from 3.24.5 to 3.24.6 by @dependabot in #275
- build(deps): bump actions/checkout from 4.1.1 to 4.1.2 by @dependabot in #276
- build(deps): bump github/codeql-action from 3.24.6 to 3.24.7 by @dependabot in #277
- build(deps): bump github/codeql-action from 3.24.7 to 3.24.9 by @dependabot in #278
- build(deps): bump github/codeql-action from 3.24.9 to 3.24.10 by @dependabot in #279
- build(deps): bump actions/upload-artifact from 4.3.1 to 4.3.2 by @dependabot in #280
- build(deps): bump actions/checkout from 4.1.2 to 4.1.3 by @dependabot in #281
- build(deps): bump github/codeql-action from 3.24.10 to 3.25.1 by @dependabot in #282
- build(deps): bump github/codeql-action from 3.25.1 to 3.25.3 by @dependabot in #283
- build(deps): bump golangci/golangci-lint-action from 4.0.0 to 5.0.0 by @dependabot in #284
- build(deps): bump actions/checkout from 4.1.3 to 4.1.4 by @dependabot in #285
- build(deps): bump actions/upload-artifact from 4.3.2 to 4.3.3 by @dependabot in #286
- build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 by @dependabot in #288
- build(deps): bump golangci/golangci-lint-action from 5.0.0 to 5.3.0 by @dependabot in #289
- build(deps): bump golangci/golangci-lint-action from 5.3.0 to 6.0.1 by @dependabot in #293
- build(deps): bump github/codeql-action from 3.25.3 to 3.25.4 by @dependabot in #292
- build(deps): bump actions/checkout from 4.1.4 to 4.1.5 by @dependabot in #291
- build(deps): bump ossf/scorecard-action from 2.3.1 to 2.3.3 by @dependabot in #290
- build(deps): bump github/codeql-action from 3.25.4 to 3.25.5 by @dependabot in #294
- build(deps): bump actions/checkout from 4.1.5 to 4.1.6 by @dependabot in #295
Full Changelog: v1.4.1...v1.4.2
v1.4.1
v1.4.0
This release dramatically improves interoperability with Go's log/slog
package. In particular, logr.NewContext
and logr.NewContextWithSlogLogger
use the same context key, which allows logr.FromContext
and logr.FromContextAsSlogLogger
to return logr.Logger
or *slog.Logger
respectively, including transparently converting each to the other as needed.
Functions logr/slogr.NewLogr
and logr/slogr.ToSlogHandler
have been superceded by logr.FromSlogHandler
and logr.ToSlogHandler
respectively, and type logr/slogr.SlogSink
has been superceded by logr.SlogSink
. All of the old names in logr/slogr
remain, for compatibility.
Package logr/funcr
now supports logr.SlogSink
, meaning that it's output passes all but one of the Slog conformance tests (that exception being that funcr
handles the timestamp itself).
Users who have a logr.Logger
and need a *slog.Logger
can call slog.New(logr.ToSlogHandler(...))
and all output will go through the same stack.
Users who have a *slog.Logger
or slog.Handler
can call logr.FromSlogHandler(...)
and all output will go through the same stack.
What's Changed
- slog context support by @pohly in #237
- slog support: fix WithGroup + WithValues combination by @pohly in #243
- Add tests for context with slog by @thockin in #246
- sloghandler: unnamed groups should be inlined by @thockin in #245
- Add SlogSink support to funcr by @thockin in #241
- funcr: Add LogInfoLevel Option to skip logging level in the info log by @spacewander in #240
New Contributors
- @spacewander made their first contribution in #240
Full Changelog: v1.3.0...v1.4.0
v1.3.0
This release adds support for slog in a new, self-contained logr/slogr
package. Implementers of a logr.LogSink
are encouraged, but not required, to extend their implementation to improve the quality of log output coming from a slog
API call.
Breaking change: the call depth for LogSink.Enabled
when called via Logger.Enabled
was fixed to be the same as for other call paths. Implementers of a LogSink
who have worked around this bug will need to remove their workarounds.
Security best practices were improved. Only Go versions >= 1.18 are supported by this release.
What's Changed
- Fix golangci-lint fails by @thockin in #173
- Add minimal permissions to workflows by @pnacht in #177
- Add a security policy by @pnacht in #178
- Update security email by @thockin in #181
- docs: explain relationship between Logger{} and Discard() by @pohly in #182
- Add the OpenSSF Scorecard workflow by @pnacht in #186
- README: show of OpenSSF Scorecard badge by @pohly in #187
- Hash-pin workflow Actions by @pnacht in #189
- Bump go versions to 1.18+ by @thockin in #203
- slogr: add glue code for logging to slog.Handler and with slog.Logger by @pohly in #205
- slogr: restore original backend when converting back and forth by @pohly in #210
- slogr: add SlogSink by @pohly in #211
- Use same call depth for Enabled, Info, Error by @thockin in #218
- test: eliminate helper func by @thockin in #219
- docs: interoperability with slog by @pohly in #222
- build(deps): bump actions/setup-go from 3.5.0 to 4.0.1 by @dependabot in #190
- build(deps): bump github/codeql-action from 2.20.1 to 2.20.3 by @dependabot in #191
- build(deps): bump github/codeql-action from 2.20.3 to 2.20.4 by @dependabot in #192
- build(deps): bump github/codeql-action from 2.20.4 to 2.21.0 by @dependabot in #193
- build(deps): bump github/codeql-action from 2.21.0 to 2.21.2 by @dependabot in #194
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.3 by @dependabot in #207
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by @dependabot in #206
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by @dependabot in #209
- build(deps): bump github/codeql-action from 2.21.3 to 2.21.4 by @dependabot in #208
- build(deps): bump actions/checkout from 3.5.3 to 3.6.0 by @dependabot in #214
- build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 by @dependabot in #217
- build(deps): bump actions/checkout from 3.6.0 to 4.0.0 by @dependabot in #220
- build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by @dependabot in #221
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 by @dependabot in #223
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by @dependabot in #224
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by @dependabot in #225
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by @dependabot in #226
- build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 by @dependabot in #227
- build(deps): bump github/codeql-action from 2.21.9 to 2.22.0 by @dependabot in #228
- build(deps): bump github/codeql-action from 2.22.0 to 2.22.3 by @dependabot in #229
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by @dependabot in #231
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 by @dependabot in #230
New Contributors
- @pnacht made their first contribution in #177
- @dependabot made their first contribution in #190
Full Changelog: v1.2.4...v1.3.0
v1.2.4
This is a collection of small bugfixes and documentation updates.
NOTE: A change (#166) which was thought to be compatible seems to be a breaking change. In particular, one used to be able to differentiate the result of Discard()
from Logger{}
. After this change, those are the same. We are considering how to address this, but do not currently plan to revert this change. Apologies!
What's Changed
- Fix syntax in documentation by @balki in #144
- testr: use an interface to make it work with *testing.B and *testing.F by @jeandeaual in #143
- If logging as JSON and the type is json.RawMessage log it "as-is" by @sfc-gh-jchacon in #147
- Make zero value useful & add .IsZero() by @wojas in #153
- testr: merge testLogger and testLoggerInterface by @thockin in #160
- funcr: JSON invalid output with 1st field omitted by @thockin in #159
- Make github assign PRs and issues by @thockin in #162
- Fix comments on optional sink interfaces by @thockin in #161
- Add examples for Logger methods by @thockin in #163
- funcr: optimize WithValues/WithName/WithCallDepth by @pohly in #165
- make Discard logger equal to null logger by @pohly in #166
New Contributors
- @balki made their first contribution in #144
- @jeandeaual made their first contribution in #143
- @sfc-gh-jchacon made their first contribution in #147
Full Changelog: v1.2.3...v1.2.4
v1.2.3
This is a minor release.
What's Changed
- funcr: Handle nil Stringer, Marshaler, error by @thockin in #130
- Produce a useful error rather than panic.
- Move testing -> testr, deprecate, alias old names by @thockin in #140
- This is mostly about ergonomics and names, no behavioral changes.
New Contributors
Full Changelog: v1.2.2...v1.2.3
v1.2.2
Bugfix release
- funcr: Add a new Option
MaxLogDepth
which controls how many levels of nested fields (e.g. a struct that contains a struct that contains a struct, etc.) it may log. Every time it finds a struct, slice, array, or map the depth is increased by one. When the maximum is reached, the value will be converted to a string indicating that the max depth has been exceeded. If this field is not specified, a default value will be used.
v1.2.1
This is a minor bugfix release.
- logr: Clarify the
Error()
semantics. 1) Error messages are always printed (they do not followV()
) and theerror
argument may be nil. - funcr: When using
RenderValuesHook
func would save the "cooked" result, so repeated calls toWithValues()
would not merge properly.
v1.2.0
This release has several bug fixes and feature improvements.
- logr: define an optional
logr.Marshaler
interface for types which want to control how they get logged - funcr: support
fmt.Stringer
anderror
interfaces on values which implement them - funcr: support logging complex{64,128}
- funcr: fix handling of typed nil when logging a struct via reflection
- funcr: add (optional) JSON output formatting mode
- funcr: better handling of Go's
json
struct tags (all except "string") - funcr: handle embedded types more like Go's
json
package - funcr: misc performance optimizations
- funcr: add support for modifying or remapping key/value pairs via hook functions
- funcr: optionally log the caller function name
- funcr: fix escaping of strings which contain special characters like line breaks or quotation marks
- funcr: support
encoding.TextMarshaler
for map keys - funcr: allow customization of the timestamp format
- funcr: improved testing
- link to zerologr at its new location in the go-logr organization
- various documentation and
go doc
enhancements
v1.2.0-rc1
This release has several bug fixes and feature improvements.
- logr: define an optional
logr.Marshaler
interface for types which want to control how they get logged - funcr: support
fmt.Stringer
anderror
interfaces on values which implement them - funcr: support logging complex{64,128}
- funcr: fix handling of typed nil when logging a struct via reflection
- funcr: add (optional) JSON output formatting mode
- funcr: better handling of Go's
json
struct tags (all except "string") - funcr: handle embedded types more like Go's
json
package - funcr: misc performance optimizations
- funcr: add support for modifying or remapping key/value pairs via hook functions
- funcr: optionally log the caller function name
- funcr: fix escaping of strings which contain special characters like line breaks or quotation marks
- funcr: support
encoding.TextMarshaler
for map keys - funcr: improved testing
- link to zerologr at its new location in the go-logr organization
- various documentation and
go doc
enhancements