go-logr/logr (github.com/go-logr/logr)
### [`v1.4.1`](https://togithub.com/go-logr/logr/releases/tag/v1.4.1)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.4.0...v1.4.1)
#### What's Changed
- slogr: fix unintended API break in v1.4.0 by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/253](https://togithub.com/go-logr/logr/pull/253)
**Full Changelog**: https://github.com/go-logr/logr/compare/v1.4.0...v1.4.1
### [`v1.4.0`](https://togithub.com/go-logr/logr/releases/tag/v1.4.0)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.3.0...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](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/237](https://togithub.com/go-logr/logr/pull/237)
- slog support: fix WithGroup + WithValues combination by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/243](https://togithub.com/go-logr/logr/pull/243)
- Add tests for context with slog by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/246](https://togithub.com/go-logr/logr/pull/246)
- sloghandler: unnamed groups should be inlined by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/245](https://togithub.com/go-logr/logr/pull/245)
- Add SlogSink support to funcr by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/241](https://togithub.com/go-logr/logr/pull/241)
- funcr: Add LogInfoLevel Option to skip logging level in the info log by [@spacewander](https://togithub.com/spacewander) in [https://github.com/go-logr/logr/pull/240](https://togithub.com/go-logr/logr/pull/240)
#### New Contributors
- [@spacewander](https://togithub.com/spacewander) made their first contribution in [https://github.com/go-logr/logr/pull/240](https://togithub.com/go-logr/logr/pull/240)
**Full Changelog**: https://github.com/go-logr/logr/compare/v1.3.0...v1.4.0
### [`v1.3.0`](https://togithub.com/go-logr/logr/releases/tag/v1.3.0)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.4...v1.3.0)
This release adds [support for slog](https://togithub.com/go-logr/logr#slog-interoperability) 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](https://togithub.com/go-logr/logr/pull/218) 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](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/173](https://togithub.com/go-logr/logr/pull/173)
- Add minimal permissions to workflows by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/177](https://togithub.com/go-logr/logr/pull/177)
- Add a security policy by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/178](https://togithub.com/go-logr/logr/pull/178)
- Update security email by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/181](https://togithub.com/go-logr/logr/pull/181)
- docs: explain relationship between Logger{} and Discard() by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/182](https://togithub.com/go-logr/logr/pull/182)
- Add the OpenSSF Scorecard workflow by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/186](https://togithub.com/go-logr/logr/pull/186)
- README: show of OpenSSF Scorecard badge by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/187](https://togithub.com/go-logr/logr/pull/187)
- Hash-pin workflow Actions by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/189](https://togithub.com/go-logr/logr/pull/189)
- Bump go versions to 1.18+ by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/203](https://togithub.com/go-logr/logr/pull/203)
- slogr: add glue code for logging to slog.Handler and with slog.Logger by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/205](https://togithub.com/go-logr/logr/pull/205)
- slogr: restore original backend when converting back and forth by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/210](https://togithub.com/go-logr/logr/pull/210)
- slogr: add SlogSink by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/211](https://togithub.com/go-logr/logr/pull/211)
- Use same call depth for Enabled, Info, Error by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/218](https://togithub.com/go-logr/logr/pull/218)
- test: eliminate helper func by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/219](https://togithub.com/go-logr/logr/pull/219)
- docs: interoperability with slog by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/222](https://togithub.com/go-logr/logr/pull/222)
***
- build(deps): bump actions/setup-go from 3.5.0 to 4.0.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/190](https://togithub.com/go-logr/logr/pull/190)
- build(deps): bump github/codeql-action from 2.20.1 to 2.20.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/191](https://togithub.com/go-logr/logr/pull/191)
- build(deps): bump github/codeql-action from 2.20.3 to 2.20.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/192](https://togithub.com/go-logr/logr/pull/192)
- build(deps): bump github/codeql-action from 2.20.4 to 2.21.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/193](https://togithub.com/go-logr/logr/pull/193)
- build(deps): bump github/codeql-action from 2.21.0 to 2.21.2 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/194](https://togithub.com/go-logr/logr/pull/194)
- build(deps): bump github/codeql-action from 2.21.2 to 2.21.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/207](https://togithub.com/go-logr/logr/pull/207)
- build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/206](https://togithub.com/go-logr/logr/pull/206)
- build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/209](https://togithub.com/go-logr/logr/pull/209)
- build(deps): bump github/codeql-action from 2.21.3 to 2.21.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/208](https://togithub.com/go-logr/logr/pull/208)
- build(deps): bump actions/checkout from 3.5.3 to 3.6.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/214](https://togithub.com/go-logr/logr/pull/214)
- build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/217](https://togithub.com/go-logr/logr/pull/217)
- build(deps): bump actions/checkout from 3.6.0 to 4.0.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/220](https://togithub.com/go-logr/logr/pull/220)
- build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/221](https://togithub.com/go-logr/logr/pull/221)
- build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/223](https://togithub.com/go-logr/logr/pull/223)
- build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/224](https://togithub.com/go-logr/logr/pull/224)
- build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/225](https://togithub.com/go-logr/logr/pull/225)
- build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/226](https://togithub.com/go-logr/logr/pull/226)
- build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/227](https://togithub.com/go-logr/logr/pull/227)
- build(deps): bump github/codeql-action from 2.21.9 to 2.22.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/228](https://togithub.com/go-logr/logr/pull/228)
- build(deps): bump github/codeql-action from 2.22.0 to 2.22.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/229](https://togithub.com/go-logr/logr/pull/229)
- build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/231](https://togithub.com/go-logr/logr/pull/231)
- build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/230](https://togithub.com/go-logr/logr/pull/230)
#### New Contributors
- [@pnacht](https://togithub.com/pnacht) made their first contribution in [https://github.com/go-logr/logr/pull/177](https://togithub.com/go-logr/logr/pull/177)
- [@dependabot](https://togithub.com/dependabot) made their first contribution in [https://github.com/go-logr/logr/pull/190](https://togithub.com/go-logr/logr/pull/190)
**Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.4...v1.3.0
### [`v1.2.4`](https://togithub.com/go-logr/logr/releases/tag/v1.2.4)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.3...v1.2.4)
This is a collection of small bugfixes and documentation updates.
NOTE: A change ([https://github.com/go-logr/logr/pull/166](https://togithub.com/go-logr/logr/pull/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](https://togithub.com/balki) in [https://github.com/go-logr/logr/pull/144](https://togithub.com/go-logr/logr/pull/144)
- testr: use an interface to make it work with \*testing.B and \*testing.F by [@jeandeaual](https://togithub.com/jeandeaual) in [https://github.com/go-logr/logr/pull/143](https://togithub.com/go-logr/logr/pull/143)
- If logging as JSON and the type is json.RawMessage log it "as-is" by [@sfc-gh-jchacon](https://togithub.com/sfc-gh-jchacon) in [https://github.com/go-logr/logr/pull/147](https://togithub.com/go-logr/logr/pull/147)
- Make zero value useful & add .IsZero() by [@wojas](https://togithub.com/wojas) in [https://github.com/go-logr/logr/pull/153](https://togithub.com/go-logr/logr/pull/153)
- testr: merge testLogger and testLoggerInterface by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/160](https://togithub.com/go-logr/logr/pull/160)
- funcr: JSON invalid output with 1st field omitted by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/159](https://togithub.com/go-logr/logr/pull/159)
- Make github assign PRs and issues by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/162](https://togithub.com/go-logr/logr/pull/162)
- Fix comments on optional sink interfaces by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/161](https://togithub.com/go-logr/logr/pull/161)
- Add examples for Logger methods by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/163](https://togithub.com/go-logr/logr/pull/163)
- funcr: optimize WithValues/WithName/WithCallDepth by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/165](https://togithub.com/go-logr/logr/pull/165)
- make Discard logger equal to null logger by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/166](https://togithub.com/go-logr/logr/pull/166)
#### New Contributors
- [@balki](https://togithub.com/balki) made their first contribution in [https://github.com/go-logr/logr/pull/144](https://togithub.com/go-logr/logr/pull/144)
- [@jeandeaual](https://togithub.com/jeandeaual) made their first contribution in [https://github.com/go-logr/logr/pull/143](https://togithub.com/go-logr/logr/pull/143)
- [@sfc-gh-jchacon](https://togithub.com/sfc-gh-jchacon) made their first contribution in [https://github.com/go-logr/logr/pull/147](https://togithub.com/go-logr/logr/pull/147)
**Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.3...v1.2.4
### [`v1.2.3`](https://togithub.com/go-logr/logr/releases/tag/v1.2.3)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.2...v1.2.3)
This is a minor release.
#### What's Changed
- funcr: Handle nil Stringer, Marshaler, error by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/130](https://togithub.com/go-logr/logr/pull/130)
- Produce a useful error rather than panic.
- Move testing -> testr, deprecate, alias old names by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/140](https://togithub.com/go-logr/logr/pull/140)
- This is mostly about ergonomics and names, no behavioral changes.
#### New Contributors
- [@tonglil](https://togithub.com/tonglil) made their first contribution in [https://github.com/go-logr/logr/pull/129](https://togithub.com/go-logr/logr/pull/129)
**Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.2...v1.2.3
### [`v1.2.2`](https://togithub.com/go-logr/logr/releases/tag/v1.2.2)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.1...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`](https://togithub.com/go-logr/logr/releases/tag/v1.2.1)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.0...v1.2.1)
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`](https://togithub.com/go-logr/logr/releases/tag/v1.2.0)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.1.0...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` 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.1.0`](https://togithub.com/go-logr/logr/releases/tag/v1.1.0)
[Compare Source](https://togithub.com/go-logr/logr/compare/v1.0.0...v1.1.0)
This release has several bugfixes and feature improvements.
- logr: fix incremental `WithCallDepth()` calls.
- logr: expose the LogSink via `GetSink()` and `SetSink()` for custom `WithSomething(logr, something)` integrations.
- logr: add an optional `CallStackHelperLogSink` interface so that implementations which have a function to flag helper functions (e.g. `testing.T` has `Helper()`) can attribute callers correctly. Log helper functions should prefer to use `WithCallStackHelper()` instead `WithCallDepth(1)` for maximum reach. Note the signature of `WithCallStackHelper()` - the caller must ALSO call the returned function.
- funcr: add a `LogTimestamp` option.
- funcr: support embedding a `funcr.Formatter` in other logger implementations. Used in `testing.NewTestLogger()`
- testing: proper caller attribution when using `NewTestLogger()`
- testing: enable options for `LogTimestamp` and `Verbosity` in `NewTestLoggerWithOptions()`
- misc: Godoc clarifications
### [`v1.0.0`](https://togithub.com/go-logr/logr/blob/HEAD/CHANGELOG.md#v100-rc1)
[Compare Source](https://togithub.com/go-logr/logr/compare/v0.4.0...v1.0.0)
This is the first logged release. Major changes (including breaking changes)
have occurred since earlier tags.
Configuration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
v0.4.0
->v1.4.1
Release Notes
go-logr/logr (github.com/go-logr/logr)
### [`v1.4.1`](https://togithub.com/go-logr/logr/releases/tag/v1.4.1) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.4.0...v1.4.1) #### What's Changed - slogr: fix unintended API break in v1.4.0 by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/253](https://togithub.com/go-logr/logr/pull/253) **Full Changelog**: https://github.com/go-logr/logr/compare/v1.4.0...v1.4.1 ### [`v1.4.0`](https://togithub.com/go-logr/logr/releases/tag/v1.4.0) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.3.0...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](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/237](https://togithub.com/go-logr/logr/pull/237) - slog support: fix WithGroup + WithValues combination by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/243](https://togithub.com/go-logr/logr/pull/243) - Add tests for context with slog by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/246](https://togithub.com/go-logr/logr/pull/246) - sloghandler: unnamed groups should be inlined by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/245](https://togithub.com/go-logr/logr/pull/245) - Add SlogSink support to funcr by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/241](https://togithub.com/go-logr/logr/pull/241) - funcr: Add LogInfoLevel Option to skip logging level in the info log by [@spacewander](https://togithub.com/spacewander) in [https://github.com/go-logr/logr/pull/240](https://togithub.com/go-logr/logr/pull/240) #### New Contributors - [@spacewander](https://togithub.com/spacewander) made their first contribution in [https://github.com/go-logr/logr/pull/240](https://togithub.com/go-logr/logr/pull/240) **Full Changelog**: https://github.com/go-logr/logr/compare/v1.3.0...v1.4.0 ### [`v1.3.0`](https://togithub.com/go-logr/logr/releases/tag/v1.3.0) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.4...v1.3.0) This release adds [support for slog](https://togithub.com/go-logr/logr#slog-interoperability) 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](https://togithub.com/go-logr/logr/pull/218) 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](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/173](https://togithub.com/go-logr/logr/pull/173) - Add minimal permissions to workflows by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/177](https://togithub.com/go-logr/logr/pull/177) - Add a security policy by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/178](https://togithub.com/go-logr/logr/pull/178) - Update security email by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/181](https://togithub.com/go-logr/logr/pull/181) - docs: explain relationship between Logger{} and Discard() by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/182](https://togithub.com/go-logr/logr/pull/182) - Add the OpenSSF Scorecard workflow by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/186](https://togithub.com/go-logr/logr/pull/186) - README: show of OpenSSF Scorecard badge by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/187](https://togithub.com/go-logr/logr/pull/187) - Hash-pin workflow Actions by [@pnacht](https://togithub.com/pnacht) in [https://github.com/go-logr/logr/pull/189](https://togithub.com/go-logr/logr/pull/189) - Bump go versions to 1.18+ by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/203](https://togithub.com/go-logr/logr/pull/203) - slogr: add glue code for logging to slog.Handler and with slog.Logger by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/205](https://togithub.com/go-logr/logr/pull/205) - slogr: restore original backend when converting back and forth by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/210](https://togithub.com/go-logr/logr/pull/210) - slogr: add SlogSink by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/211](https://togithub.com/go-logr/logr/pull/211) - Use same call depth for Enabled, Info, Error by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/218](https://togithub.com/go-logr/logr/pull/218) - test: eliminate helper func by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/219](https://togithub.com/go-logr/logr/pull/219) - docs: interoperability with slog by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/222](https://togithub.com/go-logr/logr/pull/222) *** - build(deps): bump actions/setup-go from 3.5.0 to 4.0.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/190](https://togithub.com/go-logr/logr/pull/190) - build(deps): bump github/codeql-action from 2.20.1 to 2.20.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/191](https://togithub.com/go-logr/logr/pull/191) - build(deps): bump github/codeql-action from 2.20.3 to 2.20.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/192](https://togithub.com/go-logr/logr/pull/192) - build(deps): bump github/codeql-action from 2.20.4 to 2.21.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/193](https://togithub.com/go-logr/logr/pull/193) - build(deps): bump github/codeql-action from 2.21.0 to 2.21.2 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/194](https://togithub.com/go-logr/logr/pull/194) - build(deps): bump github/codeql-action from 2.21.2 to 2.21.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/207](https://togithub.com/go-logr/logr/pull/207) - build(deps): bump actions/setup-go from 4.0.1 to 4.1.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/206](https://togithub.com/go-logr/logr/pull/206) - build(deps): bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/209](https://togithub.com/go-logr/logr/pull/209) - build(deps): bump github/codeql-action from 2.21.3 to 2.21.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/208](https://togithub.com/go-logr/logr/pull/208) - build(deps): bump actions/checkout from 3.5.3 to 3.6.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/214](https://togithub.com/go-logr/logr/pull/214) - build(deps): bump github/codeql-action from 2.21.4 to 2.21.5 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/217](https://togithub.com/go-logr/logr/pull/217) - build(deps): bump actions/checkout from 3.6.0 to 4.0.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/220](https://togithub.com/go-logr/logr/pull/220) - build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/221](https://togithub.com/go-logr/logr/pull/221) - build(deps): bump github/codeql-action from 2.21.5 to 2.21.7 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/223](https://togithub.com/go-logr/logr/pull/223) - build(deps): bump github/codeql-action from 2.21.7 to 2.21.8 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/224](https://togithub.com/go-logr/logr/pull/224) - build(deps): bump actions/checkout from 4.0.0 to 4.1.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/225](https://togithub.com/go-logr/logr/pull/225) - build(deps): bump github/codeql-action from 2.21.8 to 2.21.9 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/226](https://togithub.com/go-logr/logr/pull/226) - build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/227](https://togithub.com/go-logr/logr/pull/227) - build(deps): bump github/codeql-action from 2.21.9 to 2.22.0 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/228](https://togithub.com/go-logr/logr/pull/228) - build(deps): bump github/codeql-action from 2.22.0 to 2.22.3 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/229](https://togithub.com/go-logr/logr/pull/229) - build(deps): bump actions/checkout from 4.1.0 to 4.1.1 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/231](https://togithub.com/go-logr/logr/pull/231) - build(deps): bump github/codeql-action from 2.22.3 to 2.22.4 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/go-logr/logr/pull/230](https://togithub.com/go-logr/logr/pull/230) #### New Contributors - [@pnacht](https://togithub.com/pnacht) made their first contribution in [https://github.com/go-logr/logr/pull/177](https://togithub.com/go-logr/logr/pull/177) - [@dependabot](https://togithub.com/dependabot) made their first contribution in [https://github.com/go-logr/logr/pull/190](https://togithub.com/go-logr/logr/pull/190) **Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.4...v1.3.0 ### [`v1.2.4`](https://togithub.com/go-logr/logr/releases/tag/v1.2.4) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.3...v1.2.4) This is a collection of small bugfixes and documentation updates. NOTE: A change ([https://github.com/go-logr/logr/pull/166](https://togithub.com/go-logr/logr/pull/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](https://togithub.com/balki) in [https://github.com/go-logr/logr/pull/144](https://togithub.com/go-logr/logr/pull/144) - testr: use an interface to make it work with \*testing.B and \*testing.F by [@jeandeaual](https://togithub.com/jeandeaual) in [https://github.com/go-logr/logr/pull/143](https://togithub.com/go-logr/logr/pull/143) - If logging as JSON and the type is json.RawMessage log it "as-is" by [@sfc-gh-jchacon](https://togithub.com/sfc-gh-jchacon) in [https://github.com/go-logr/logr/pull/147](https://togithub.com/go-logr/logr/pull/147) - Make zero value useful & add .IsZero() by [@wojas](https://togithub.com/wojas) in [https://github.com/go-logr/logr/pull/153](https://togithub.com/go-logr/logr/pull/153) - testr: merge testLogger and testLoggerInterface by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/160](https://togithub.com/go-logr/logr/pull/160) - funcr: JSON invalid output with 1st field omitted by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/159](https://togithub.com/go-logr/logr/pull/159) - Make github assign PRs and issues by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/162](https://togithub.com/go-logr/logr/pull/162) - Fix comments on optional sink interfaces by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/161](https://togithub.com/go-logr/logr/pull/161) - Add examples for Logger methods by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/163](https://togithub.com/go-logr/logr/pull/163) - funcr: optimize WithValues/WithName/WithCallDepth by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/165](https://togithub.com/go-logr/logr/pull/165) - make Discard logger equal to null logger by [@pohly](https://togithub.com/pohly) in [https://github.com/go-logr/logr/pull/166](https://togithub.com/go-logr/logr/pull/166) #### New Contributors - [@balki](https://togithub.com/balki) made their first contribution in [https://github.com/go-logr/logr/pull/144](https://togithub.com/go-logr/logr/pull/144) - [@jeandeaual](https://togithub.com/jeandeaual) made their first contribution in [https://github.com/go-logr/logr/pull/143](https://togithub.com/go-logr/logr/pull/143) - [@sfc-gh-jchacon](https://togithub.com/sfc-gh-jchacon) made their first contribution in [https://github.com/go-logr/logr/pull/147](https://togithub.com/go-logr/logr/pull/147) **Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.3...v1.2.4 ### [`v1.2.3`](https://togithub.com/go-logr/logr/releases/tag/v1.2.3) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.2...v1.2.3) This is a minor release. #### What's Changed - funcr: Handle nil Stringer, Marshaler, error by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/130](https://togithub.com/go-logr/logr/pull/130) - Produce a useful error rather than panic. - Move testing -> testr, deprecate, alias old names by [@thockin](https://togithub.com/thockin) in [https://github.com/go-logr/logr/pull/140](https://togithub.com/go-logr/logr/pull/140) - This is mostly about ergonomics and names, no behavioral changes. #### New Contributors - [@tonglil](https://togithub.com/tonglil) made their first contribution in [https://github.com/go-logr/logr/pull/129](https://togithub.com/go-logr/logr/pull/129) **Full Changelog**: https://github.com/go-logr/logr/compare/v1.2.2...v1.2.3 ### [`v1.2.2`](https://togithub.com/go-logr/logr/releases/tag/v1.2.2) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.1...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`](https://togithub.com/go-logr/logr/releases/tag/v1.2.1) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.2.0...v1.2.1) 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`](https://togithub.com/go-logr/logr/releases/tag/v1.2.0) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.1.0...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` 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.1.0`](https://togithub.com/go-logr/logr/releases/tag/v1.1.0) [Compare Source](https://togithub.com/go-logr/logr/compare/v1.0.0...v1.1.0) This release has several bugfixes and feature improvements. - logr: fix incremental `WithCallDepth()` calls. - logr: expose the LogSink via `GetSink()` and `SetSink()` for custom `WithSomething(logr, something)` integrations. - logr: add an optional `CallStackHelperLogSink` interface so that implementations which have a function to flag helper functions (e.g. `testing.T` has `Helper()`) can attribute callers correctly. Log helper functions should prefer to use `WithCallStackHelper()` instead `WithCallDepth(1)` for maximum reach. Note the signature of `WithCallStackHelper()` - the caller must ALSO call the returned function. - funcr: add a `LogTimestamp` option. - funcr: support embedding a `funcr.Formatter` in other logger implementations. Used in `testing.NewTestLogger()` - testing: proper caller attribution when using `NewTestLogger()` - testing: enable options for `LogTimestamp` and `Verbosity` in `NewTestLoggerWithOptions()` - misc: Godoc clarifications ### [`v1.0.0`](https://togithub.com/go-logr/logr/blob/HEAD/CHANGELOG.md#v100-rc1) [Compare Source](https://togithub.com/go-logr/logr/compare/v0.4.0...v1.0.0) This is the first logged release. Major changes (including breaking changes) have occurred since earlier tags.Configuration
📅 Schedule: Branch creation - "before 4am on Monday" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.