Skip to content

Releases: go-logr/logr

v1.4.2

21 May 16:45
1205f42
Compare
Choose a tag to compare

What's Changed

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

21 Dec 18:21
dcdc3f2
Compare
Choose a tag to compare

What's Changed

  • slogr: fix unintended API break in v1.4.0 by @pohly in #253

Full Changelog: v1.4.0...v1.4.1

v1.4.0

21 Dec 08:11
5d88f52
Compare
Choose a tag to compare

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

Full Changelog: v1.3.0...v1.4.0

v1.3.0

27 Oct 05:43
Compare
Choose a tag to compare

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

Full Changelog: v1.2.4...v1.3.0

v1.2.4

29 Mar 23:30
Compare
Choose a tag to compare

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

Full Changelog: v1.2.3...v1.2.4

v1.2.3

17 Mar 20:00
47e013c
Compare
Choose a tag to compare

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

13 Dec 16:28
99e02a9
Compare
Choose a tag to compare

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

30 Nov 19:04
dd8f76f
Compare
Choose a tag to compare

This is a minor bugfix release.

  • logr: Clarify the Error() semantics. 1) Error messages are always printed (they do not follow V()) and the error argument may be nil.
  • funcr: When using RenderValuesHook func would save the "cooked" result, so repeated calls to WithValues() would not merge properly.

v1.2.0

20 Oct 18:52
62568d8
Compare
Choose a tag to compare

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 and error 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

14 Oct 21:29
1215c81
Compare
Choose a tag to compare
v1.2.0-rc1 Pre-release
Pre-release

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 and error 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