Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add missing Depth logging functions. #280

Merged
merged 1 commit into from
Feb 4, 2022
Merged

Add missing Depth logging functions. #280

merged 1 commit into from
Feb 4, 2022

Conversation

s3rj1k
Copy link

@s3rj1k s3rj1k commented Dec 28, 2021

Add missing Depth logging functions.

Signed-off-by: s3rj1k evasive.gyron@gmail.com

Signed-off-by: s3rj1k <evasive.gyron@gmail.com>
@k8s-ci-robot
Copy link

Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

📝 Please follow instructions at https://git.k8s.io/community/CLA.md#the-contributor-license-agreement to sign the CLA.

It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.


Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@linux-foundation-easycla
Copy link

linux-foundation-easycla bot commented Dec 28, 2021

CLA Signed

The committers are authorized under a signed CLA.

@k8s-ci-robot k8s-ci-robot added the cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. label Dec 28, 2021
@k8s-ci-robot
Copy link

Welcome @s3rj1k!

It looks like this is your first PR to kubernetes/klog 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/klog has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Dec 28, 2021
@s3rj1k

This comment has been minimized.

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. and removed cncf-cla: no Indicates the PR's author has not signed the CNCF CLA. labels Dec 28, 2021
@s3rj1k
Copy link
Author

s3rj1k commented Jan 11, 2022

PTAL @pohly @dims

@s3rj1k
Copy link
Author

s3rj1k commented Jan 11, 2022

/assign @piosz

@pohly
Copy link

pohly commented Jan 11, 2022

I recently added V.InfoSDepth. I intentionally did not add any of the other variants because long-term, all log calls in Kubernetes should be using structured logging. For that code, none of the functions that get added here matter.

I'm unsure how complex we want to make klog for other places where it is used. @dims?

@s3rj1k
Copy link
Author

s3rj1k commented Jan 11, 2022

For that code, none of the functions that get added here matter.

PR enables klog usage in other K8s related projects as a single logger package.

@s3rj1k
Copy link
Author

s3rj1k commented Jan 11, 2022

all log calls in Kubernetes should be using structured logging

IMO, for that to happen, all other none structured logging functions should be deprecated.

@s3rj1k
Copy link
Author

s3rj1k commented Jan 19, 2022

@pohly @dims ? Would be nice to understand future of this PR, can we land it or not.

Copy link

@pohly pohly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After discussing the future role of klog in the context of contextual logging it is clearer that klog has its place in the ecosystem also outside of Kubernetes, so from that perspective it seems okay to me to add missing function also when those are not needed by Kubernetes.

/lgtm

/assign @dims

For approval.

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Feb 4, 2022
@dims
Copy link
Member

dims commented Feb 4, 2022

/approve
/lgtm

@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dims, pohly, s3rj1k

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 4, 2022
@k8s-ci-robot k8s-ci-robot merged commit e7e4115 into kubernetes:main Feb 4, 2022
@@ -699,7 +699,11 @@ func (buf *buffer) someDigits(i, d int) int {
}

func (l *loggingT) println(s severity, logger *logr.Logger, filter LogFilter, args ...interface{}) {
buf, file, line := l.header(s, 0)
l.printlnDepth(s, logger, filter, 1, args...)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm seeing off-by-one errors during stack unwinding after updating to a klog with this change.

Why is this 1 and not something else? Was that tested?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can change that to 2 without any test failing. Looks like we don't have any test for this in klog itself.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry, I assumed that 1 for stack unwinding is correct value due to

func Exitf(format string, args ...interface{}) { atomic.StoreUint32(&fatalNoStacks, 1) logging.printf(fatalLog, logging.logr, logging.filter, format, args...) }

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It breaks in Kubernetes when testing the JSON logger, i.e. when SetLogger is used with a Logger implementation that itself does stack unwinding. We can't test that in klog with just a unit test because we must not depend on such a logger.

l.printlnDepth(s, logger, filter, 1, args...)
}

func (l *loggingT) printlnDepth(s severity, logger *logr.Logger, filter LogFilter, depth int, args ...interface{}) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is suspicious here is that depth is not passed through to l.output. Wrapping printlnDepth with println and keeping the same constant 0 as before can't be right.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume it should be something like depth+1

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pasing depth through fixed it for me -> #287

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whether it is "1" or "depth + 1" depends a lot on the actual semantic, which isn't well defined. This is almost impossible to get right without tests 😢

In this case one can reason like this: 0 was correct before, now we add one layer and pass depth=1 -> passing depth is right, depth+1 would be one level too many. Testing with the JSON tests in Kubernetes confirms that.

pohly added a commit to pohly/klog that referenced this pull request Feb 7, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
@pohly pohly mentioned this pull request Feb 7, 2022
pohly added a commit to pohly/klog that referenced this pull request Feb 9, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
// ErrorlnDepth acts as Errorln but uses depth to determine which call frame to log.
// ErrorlnDepth(0, "msg") is the same as Errorln("msg").
func ErrorlnDepth(depth int, args ...interface{}) {
logging.printDepth(errorLog, logging.logr, logging.filter, depth, args...)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this be logging.printlnDepth? Errorln uses logging.println.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmm, yea

// WarninglnDepth acts as Warningln but uses depth to determine which call frame to log.
// WarninglnDepth(0, "msg") is the same as Warningln("msg").
func WarninglnDepth(depth int, args ...interface{}) {
logging.printDepth(warningLog, logging.logr, logging.filter, depth, args...)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also should be logging.printlnDepth here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I do a PR fix for that?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is also FatallnDepth( with similar issue

@s3rj1k
Copy link
Author

s3rj1k commented Feb 10, 2022

pohly added a commit to pohly/klog that referenced this pull request Feb 10, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
pohly added a commit to pohly/klog that referenced this pull request Feb 10, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 10, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
pohly added a commit to pohly/klog that referenced this pull request Feb 10, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
pohly added a commit to pohly/klog that referenced this pull request Feb 10, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
pohly added a commit to pohly/klog that referenced this pull request Feb 11, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
klog has a lot of functions, but not all of them are covered with unit
tests. Only a few check stack unwinding.

This new test is designed to:
- check stack unwinding for all functions
- check the difference between fmt.Print and fmt.Println (only the
  latter inserts spaces between strings)
- check the output with and without a Logger

This therefore covers bugs in kubernetes#280:
- depth was not passed on to Logger
- ErrorlnDepth and WarninglnDepth used fmt.Print instead of fmt.Println
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 turned println and printf into
wrapper functions, but the underlying *Depth functions kept passing the same 0
depth to l.output and thus any logr.Logger.

That off-by-one error broke JSON tests in Kubernetes, luckily well before any
of the PR went into a release. It would be nice to have regression testing for
this in klog, but we cannot depend on a Logger which does stack unwinding in
the code, so the only thing that could be done is some kind of GitHub action
which combines klog with some external logger.

The depth=1 in println is also not covered by unit tests, but seems to be
correct based on the JSON tests.
pohly added a commit to pohly/klog that referenced this pull request Feb 14, 2022
kubernetes#280 added several new functions and
didn't quite get the print vs println difference right: the corresponding
non-Depth functions use fmt.Println and the Depth versions should do the same.
k8s-ci-robot added a commit that referenced this pull request Feb 14, 2022
fixes for PR #280, refactoring, textlogger, unit test
TylerHelmuth referenced this pull request in open-telemetry/opentelemetry-collector-contrib Dec 19, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&#8203;aimuz](https://togithub.com/aimuz) in
[https://github.com/kubernetes/klog/pull/378](https://togithub.com/kubernetes/klog/pull/378)
- resolve comments warning by
[@&#8203;lowang-bh](https://togithub.com/lowang-bh) in
[https://github.com/kubernetes/klog/pull/379](https://togithub.com/kubernetes/klog/pull/379)
- stderrthreshold: fix flag comment by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/376](https://togithub.com/kubernetes/klog/pull/376)
- enable "go vet" checks for parameters by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/390](https://togithub.com/kubernetes/klog/pull/390)
- promote experimental code to stable by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/392](https://togithub.com/kubernetes/klog/pull/392)
- golangci-lint action by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/380](https://togithub.com/kubernetes/klog/pull/380)
- output: handle WithName like zapr does by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/391](https://togithub.com/kubernetes/klog/pull/391)
- slog support + logr 1.3.0 update by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/384](https://togithub.com/kubernetes/klog/pull/384)

#### New Contributors

- [@&#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[https://github.com/kubernetes/klog/pull/378](https://togithub.com/kubernetes/klog/pull/378)
- [@&#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[https://github.com/kubernetes/klog/pull/379](https://togithub.com/kubernetes/klog/pull/379)

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&#8203;mikedanese](https://togithub.com/mikedanese) in
[https://github.com/kubernetes/klog/pull/369](https://togithub.com/kubernetes/klog/pull/369)
- add Format wrapper by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/374](https://togithub.com/kubernetes/klog/pull/374)
- JSON as fallback encoding by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/375](https://togithub.com/kubernetes/klog/pull/375)

#### New Contributors

- [@&#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[https://github.com/kubernetes/klog/pull/369](https://togithub.com/kubernetes/klog/pull/369)

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/366](https://togithub.com/kubernetes/klog/pull/366)
- ktesting improvements by [@&#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/365](https://togithub.com/kubernetes/klog/pull/365)
- ktesting + textlogger config api by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/368](https://togithub.com/kubernetes/klog/pull/368)
- textlogger write through by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/363](https://togithub.com/kubernetes/klog/pull/363)

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/355](https://togithub.com/kubernetes/klog/pull/355)
- improve textlogger by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/362](https://togithub.com/kubernetes/klog/pull/362)

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/349](https://togithub.com/kubernetes/klog/pull/349)

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/342](https://togithub.com/kubernetes/klog/pull/342)
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/344](https://togithub.com/kubernetes/klog/pull/344)
- Bump version of golang to 1.19 and drop older versions by
[@&#8203;dims](https://togithub.com/dims) in
[https://github.com/kubernetes/klog/pull/345](https://togithub.com/kubernetes/klog/pull/345)

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/337](https://togithub.com/kubernetes/klog/pull/337)
- contextual logging: enable by default again by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/341](https://togithub.com/kubernetes/klog/pull/341)

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/297](https://togithub.com/kubernetes/klog/pull/297)
- hack/tools: drop dependency on golangci-lint by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/313](https://togithub.com/kubernetes/klog/pull/313)
- StopFlushDaemon: document flushing on shutdown by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/314](https://togithub.com/kubernetes/klog/pull/314)
- logcheck: fix detection of invalid \* regexp in filter by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/315](https://togithub.com/kubernetes/klog/pull/315)
- README.md: clarify -logtostderr by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/319](https://togithub.com/kubernetes/klog/pull/319)
- Trim duplicates by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/324](https://togithub.com/kubernetes/klog/pull/324)
- replace KObjs with KObjSlice by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/322](https://togithub.com/kubernetes/klog/pull/322)
- support logr.Marshaler by [@&#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/325](https://togithub.com/kubernetes/klog/pull/325)
- internal: remove unused TrimDuplicates by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/326](https://togithub.com/kubernetes/klog/pull/326)
- save and restore state by [@&#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/320](https://togithub.com/kubernetes/klog/pull/320)
- GitHub: use apidiff with more recent Go by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/329](https://togithub.com/kubernetes/klog/pull/329)
- remove hack/tools by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/330](https://togithub.com/kubernetes/klog/pull/330)
- GIT-331: fix shadowing key from the kv pair by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/332](https://togithub.com/kubernetes/klog/pull/332)
- klog.Fatal backtrace revert by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/328](https://togithub.com/kubernetes/klog/pull/328)
- ktesting: capture log data in memory by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/327](https://togithub.com/kubernetes/klog/pull/327)
- GIT-275: add tests for int and struct keys by
[@&#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/333](https://togithub.com/kubernetes/klog/pull/333)

#### New Contributors

- [@&#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[https://github.com/kubernetes/klog/pull/332](https://togithub.com/kubernetes/klog/pull/332)

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&#8203;serathius](https://togithub.com/serathius) in
[https://github.com/kubernetes/klog/pull/309](https://togithub.com/kubernetes/klog/pull/309)
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/310](https://togithub.com/kubernetes/klog/pull/310)
- promote contextual logging APIs to stable by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/311](https://togithub.com/kubernetes/klog/pull/311)

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/308](https://togithub.com/kubernetes/klog/pull/308)

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/306](https://togithub.com/kubernetes/klog/pull/306)

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&#8203;jklaw90](https://togithub.com/jklaw90) in
[https://github.com/kubernetes/klog/pull/283](https://togithub.com/kubernetes/klog/pull/283)
- Add missing Depth logging functions. by
[@&#8203;s3rj1k](https://togithub.com/s3rj1k) in
[https://github.com/kubernetes/klog/pull/280](https://togithub.com/kubernetes/klog/pull/280)
- fix typo in klog.go by
[@&#8203;cocaccola](https://togithub.com/cocaccola) in
[https://github.com/kubernetes/klog/pull/270](https://togithub.com/kubernetes/klog/pull/270)
- Update README.md by
[@&#8203;noaabarki](https://togithub.com/noaabarki) in
[https://github.com/kubernetes/klog/pull/281](https://togithub.com/kubernetes/klog/pull/281)
- log filter: ignored by V, used during log call by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/290](https://togithub.com/kubernetes/klog/pull/290)
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/289](https://togithub.com/kubernetes/klog/pull/289)
- fixes for PR
[#&#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/287](https://togithub.com/kubernetes/klog/pull/287)
- klogr verbosity by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/295](https://togithub.com/kubernetes/klog/pull/295)
- test: fix Go version matrix by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/298](https://togithub.com/kubernetes/klog/pull/298)
- handle panics in MarshalLog, Error, String by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/299](https://togithub.com/kubernetes/klog/pull/299)
- Fix goroutine leak: make flushDaemon stoppable by
[@&#8203;katexochen](https://togithub.com/katexochen) in
[https://github.com/kubernetes/klog/pull/293](https://togithub.com/kubernetes/klog/pull/293)
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/303](https://togithub.com/kubernetes/klog/pull/303)
- contextual logging by [@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/296](https://togithub.com/kubernetes/klog/pull/296)
- remove side effects of tests by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/305](https://togithub.com/kubernetes/klog/pull/305)
- tests: stop testing with Go 1.14 by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/304](https://togithub.com/kubernetes/klog/pull/304)

#### New Contributors

- [@&#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[https://github.com/kubernetes/klog/pull/283](https://togithub.com/kubernetes/klog/pull/283)
- [@&#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[https://github.com/kubernetes/klog/pull/280](https://togithub.com/kubernetes/klog/pull/280)
- [@&#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[https://github.com/kubernetes/klog/pull/270](https://togithub.com/kubernetes/klog/pull/270)
- [@&#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[https://github.com/kubernetes/klog/pull/281](https://togithub.com/kubernetes/klog/pull/281)
- [@&#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[https://github.com/kubernetes/klog/pull/293](https://togithub.com/kubernetes/klog/pull/293)

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&#8203;phillipsj](https://togithub.com/phillipsj) in
[https://github.com/kubernetes/klog/pull/271](https://togithub.com/kubernetes/klog/pull/271)
- Recover from nil pointers when logging by
[@&#8203;dims](https://togithub.com/dims) in
[https://github.com/kubernetes/klog/pull/279](https://togithub.com/kubernetes/klog/pull/279)

#### New Contributors

- [@&#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[https://github.com/kubernetes/klog/pull/271](https://togithub.com/kubernetes/klog/pull/271)

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/273](https://togithub.com/kubernetes/klog/pull/273)
- Fix klog lock release on panic error by
[@&#8203;astraw99](https://togithub.com/astraw99) in
[https://github.com/kubernetes/klog/pull/272](https://togithub.com/kubernetes/klog/pull/272)
- add format test for KObjs by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/276](https://togithub.com/kubernetes/klog/pull/276)
- add Verbose.InfoSDepth by [@&#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/277](https://togithub.com/kubernetes/klog/pull/277)

#### Known Issues

-
[https://github.com/kubernetes/klog/issues/278](https://togithub.com/kubernetes/klog/issues/278)

#### New Contributors

- [@&#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[https://github.com/kubernetes/klog/pull/272](https://togithub.com/kubernetes/klog/pull/272)

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&#8203;luyou86](https://togithub.com/luyou86) in
[https://github.com/kubernetes/klog/pull/265](https://togithub.com/kubernetes/klog/pull/265)
- custom marshaler for ObjectRef by
[@&#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/266](https://togithub.com/kubernetes/klog/pull/266)

#### New Contributors

- [@&#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[https://github.com/kubernetes/klog/pull/265](https://togithub.com/kubernetes/klog/pull/265)

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
cparkins referenced this pull request in AmadeusITGroup/opentelemetry-collector-contrib Jan 10, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [k8s.io/klog](https://togithub.com/kubernetes/klog) | require | major
| `v1.0.0` -> `v2.110.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>kubernetes/klog (k8s.io/klog)</summary>

###
[`v2.110.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.110.1):
Prepare klog release for Kubernetes v1.29 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.100.1...v2.110.1)

#### What's Changed

- fix: SetLogger via klog.SetLogger will output an unexpected newline by
[@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) in
[https://github.com/kubernetes/klog/pull/378](https://togithub.com/kubernetes/klog/pull/378)
- resolve comments warning by
[@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) in
[https://github.com/kubernetes/klog/pull/379](https://togithub.com/kubernetes/klog/pull/379)
- stderrthreshold: fix flag comment by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/376](https://togithub.com/kubernetes/klog/pull/376)
- enable "go vet" checks for parameters by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/390](https://togithub.com/kubernetes/klog/pull/390)
- promote experimental code to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/392](https://togithub.com/kubernetes/klog/pull/392)
- golangci-lint action by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/380](https://togithub.com/kubernetes/klog/pull/380)
- output: handle WithName like zapr does by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/391](https://togithub.com/kubernetes/klog/pull/391)
- slog support + logr 1.3.0 update by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/384](https://togithub.com/kubernetes/klog/pull/384)

#### New Contributors

- [@&open-telemetry#8203;aimuz](https://togithub.com/aimuz) made their first
contribution in
[https://github.com/kubernetes/klog/pull/378](https://togithub.com/kubernetes/klog/pull/378)
- [@&open-telemetry#8203;lowang-bh](https://togithub.com/lowang-bh) made their first
contribution in
[https://github.com/kubernetes/klog/pull/379](https://togithub.com/kubernetes/klog/pull/379)

**Full Changelog**:
kubernetes/klog@v2.100.1...v2.110.1

###
[`v2.100.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.100.1):
Prepare klog release for Kubernetes v1.28 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.1...v2.100.1)

#### What's Changed

- expose logBridge via NewStandardLog() by
[@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) in
[https://github.com/kubernetes/klog/pull/369](https://togithub.com/kubernetes/klog/pull/369)
- add Format wrapper by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/374](https://togithub.com/kubernetes/klog/pull/374)
- JSON as fallback encoding by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/375](https://togithub.com/kubernetes/klog/pull/375)

#### New Contributors

- [@&open-telemetry#8203;mikedanese](https://togithub.com/mikedanese) made their first
contribution in
[https://github.com/kubernetes/klog/pull/369](https://togithub.com/kubernetes/klog/pull/369)

**Full Changelog**:
kubernetes/klog@v2.90.1...v2.100.1

###
[`v2.90.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.1):
Prepare klog release for Kubernetes v1.27 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.90.0...v2.90.1)

#### What's Changed

- buffer: restore dropping of too large buffers by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/366](https://togithub.com/kubernetes/klog/pull/366)
- ktesting improvements by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/365](https://togithub.com/kubernetes/klog/pull/365)
- ktesting + textlogger config api by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/368](https://togithub.com/kubernetes/klog/pull/368)
- textlogger write through by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/363](https://togithub.com/kubernetes/klog/pull/363)

**Full Changelog**:
kubernetes/klog@v2.90.0...v2.90.1

###
[`v2.90.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.90.0):
Prepare klog release for Kubernetes v1.27 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.1...v2.90.0)

#### What's Changed

- klog: benchmark the overhead when logging is off by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/355](https://togithub.com/kubernetes/klog/pull/355)
- improve textlogger by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/362](https://togithub.com/kubernetes/klog/pull/362)

**Full Changelog**:
kubernetes/klog@v2.80.1...v2.90.0

##### There are some API differences from previous version

    k8s.io/klog/v2/klogr contains incompatible changes:
     - klogger.Enabled: removed
     - klogger.Error: removed
     - klogger.Info: removed

    k8s.io/klog/v2/test contains incompatible changes:
     - InitKlog: changed from func() to func(testing.TB) *flag.FlagSet

###
[`v2.80.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.1):
Prepare klog release for Kubernetes v1.26 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.80.0...v2.80.1)

#### What's Changed

- InitFlags concurrency fix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/349](https://togithub.com/kubernetes/klog/pull/349)

**Full Changelog**:
kubernetes/klog@v2.80.0...v2.80.1

###
[`v2.80.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.80.0):
Prepare klog release for Kubernetes v1.26 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.1...v2.80.0)

#### What's Changed

- OWNERS: add harshanarayana by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/342](https://togithub.com/kubernetes/klog/pull/342)
- kvlistformat: fix the issue with display marshalled value for non
string type by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/344](https://togithub.com/kubernetes/klog/pull/344)
- Bump version of golang to 1.19 and drop older versions by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[https://github.com/kubernetes/klog/pull/345](https://togithub.com/kubernetes/klog/pull/345)

**Full Changelog**:
kubernetes/klog@v2.70.1...v2.80.0

###
[`v2.70.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.1):
Prepare klog release for Kubernetes v1.25 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.70.0...v2.70.1)

#### What's Changed

- ktesting: handle test completion by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/337](https://togithub.com/kubernetes/klog/pull/337)
- contextual logging: enable by default again by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/341](https://togithub.com/kubernetes/klog/pull/341)

**Full Changelog**:
kubernetes/klog@v2.70.0...v2.70.1

###
[`v2.70.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.70.0):
Prepare klog release for Kubernetes v1.25 (Take 1)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.1...v2.70.0)

#### What's Changed

- logcheck: contextual logging + enhanced checks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/297](https://togithub.com/kubernetes/klog/pull/297)
- hack/tools: drop dependency on golangci-lint by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/313](https://togithub.com/kubernetes/klog/pull/313)
- StopFlushDaemon: document flushing on shutdown by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/314](https://togithub.com/kubernetes/klog/pull/314)
- logcheck: fix detection of invalid \* regexp in filter by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/315](https://togithub.com/kubernetes/klog/pull/315)
- README.md: clarify -logtostderr by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/319](https://togithub.com/kubernetes/klog/pull/319)
- Trim duplicates by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/324](https://togithub.com/kubernetes/klog/pull/324)
- replace KObjs with KObjSlice by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/322](https://togithub.com/kubernetes/klog/pull/322)
- support logr.Marshaler by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/325](https://togithub.com/kubernetes/klog/pull/325)
- internal: remove unused TrimDuplicates by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/326](https://togithub.com/kubernetes/klog/pull/326)
- save and restore state by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/320](https://togithub.com/kubernetes/klog/pull/320)
- GitHub: use apidiff with more recent Go by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/329](https://togithub.com/kubernetes/klog/pull/329)
- remove hack/tools by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/330](https://togithub.com/kubernetes/klog/pull/330)
- GIT-331: fix shadowing key from the kv pair by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/332](https://togithub.com/kubernetes/klog/pull/332)
- klog.Fatal backtrace revert by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/328](https://togithub.com/kubernetes/klog/pull/328)
- ktesting: capture log data in memory by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/327](https://togithub.com/kubernetes/klog/pull/327)
- GIT-275: add tests for int and struct keys by
[@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) in
[https://github.com/kubernetes/klog/pull/333](https://togithub.com/kubernetes/klog/pull/333)

#### New Contributors

- [@&open-telemetry#8203;harshanarayana](https://togithub.com/harshanarayana) made
their first contribution in
[https://github.com/kubernetes/klog/pull/332](https://togithub.com/kubernetes/klog/pull/332)

**Full Changelog**:
kubernetes/klog@v2.60.1...v2.70.0

###
[`v2.60.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.1):
Prepare klog release for Kubernetes v1.24 (Take 6)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.60.0...v2.60.1)

#### What's Changed

- Cleanup OWNERS file by
[@&open-telemetry#8203;serathius](https://togithub.com/serathius) in
[https://github.com/kubernetes/klog/pull/309](https://togithub.com/kubernetes/klog/pull/309)
- dependencies: avoid k8s.io/utils, fork clock code instead by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/310](https://togithub.com/kubernetes/klog/pull/310)
- promote contextual logging APIs to stable by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/311](https://togithub.com/kubernetes/klog/pull/311)

**Full Changelog**:
kubernetes/klog@v2.60.0...v2.60.1

###
[`v2.60.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.60.0):
Prepare klog release for Kubernetes v1.24 (Take 5)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.2...v2.60.0)

#### What's Changed

- SetContextualLogger: remove unintentionally merged API call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/308](https://togithub.com/kubernetes/klog/pull/308)

**Full Changelog**:
kubernetes/klog@v2.50.2...v2.60.0

###
[`v2.50.2`](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.1...v2.50.2)

###
[`v2.50.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.1):
Prepare klog release for Kubernetes v1.24 (Take 4)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.50.0...v2.50.1)

#### What's Changed

- SetLoggerWithOptions: support flushing by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/306](https://togithub.com/kubernetes/klog/pull/306)

**Full Changelog**:
kubernetes/klog@v2.50.0...v2.50.1

###
[`v2.50.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.50.0):
Prepare klog release for Kubernetes v1.24 (Take 3)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.1...v2.50.0)

#### What's Changed

- Panic on empty info with custom logr by
[@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) in
[https://github.com/kubernetes/klog/pull/283](https://togithub.com/kubernetes/klog/pull/283)
- Add missing Depth logging functions. by
[@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) in
[https://github.com/kubernetes/klog/pull/280](https://togithub.com/kubernetes/klog/pull/280)
- fix typo in klog.go by
[@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) in
[https://github.com/kubernetes/klog/pull/270](https://togithub.com/kubernetes/klog/pull/270)
- Update README.md by
[@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) in
[https://github.com/kubernetes/klog/pull/281](https://togithub.com/kubernetes/klog/pull/281)
- log filter: ignored by V, used during log call by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/290](https://togithub.com/kubernetes/klog/pull/290)
- SetLogger/ClearLogger/SetLogFilter cleanup by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/289](https://togithub.com/kubernetes/klog/pull/289)
- fixes for PR
[#&open-telemetry#8203;280](https://togithub.com/kubernetes/klog/issues/280),
refactoring, textlogger, unit test by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/287](https://togithub.com/kubernetes/klog/pull/287)
- klogr verbosity by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/295](https://togithub.com/kubernetes/klog/pull/295)
- test: fix Go version matrix by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/298](https://togithub.com/kubernetes/klog/pull/298)
- handle panics in MarshalLog, Error, String by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/299](https://togithub.com/kubernetes/klog/pull/299)
- Fix goroutine leak: make flushDaemon stoppable by
[@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) in
[https://github.com/kubernetes/klog/pull/293](https://togithub.com/kubernetes/klog/pull/293)
- structured logging: replacing Fatal/Exit/etc. without loss of flushing
by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/303](https://togithub.com/kubernetes/klog/pull/303)
- contextual logging by [@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/296](https://togithub.com/kubernetes/klog/pull/296)
- remove side effects of tests by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/305](https://togithub.com/kubernetes/klog/pull/305)
- tests: stop testing with Go 1.14 by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/304](https://togithub.com/kubernetes/klog/pull/304)

#### New Contributors

- [@&open-telemetry#8203;jklaw90](https://togithub.com/jklaw90) made their first
contribution in
[https://github.com/kubernetes/klog/pull/283](https://togithub.com/kubernetes/klog/pull/283)
- [@&open-telemetry#8203;s3rj1k](https://togithub.com/s3rj1k) made their first
contribution in
[https://github.com/kubernetes/klog/pull/280](https://togithub.com/kubernetes/klog/pull/280)
- [@&open-telemetry#8203;cocaccola](https://togithub.com/cocaccola) made their first
contribution in
[https://github.com/kubernetes/klog/pull/270](https://togithub.com/kubernetes/klog/pull/270)
- [@&open-telemetry#8203;noaabarki](https://togithub.com/noaabarki) made their first
contribution in
[https://github.com/kubernetes/klog/pull/281](https://togithub.com/kubernetes/klog/pull/281)
- [@&open-telemetry#8203;katexochen](https://togithub.com/katexochen) made their first
contribution in
[https://github.com/kubernetes/klog/pull/293](https://togithub.com/kubernetes/klog/pull/293)

**Full Changelog**:
kubernetes/klog@v2.40.1...v2.50.0

###
[`v2.40.1`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.1):
Prepare klog release for Kubernetes v1.24 (Take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.40.0...v2.40.1)

#### What's Changed

- Using OS targeted go files to separate out the username logic. by
[@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) in
[https://github.com/kubernetes/klog/pull/271](https://togithub.com/kubernetes/klog/pull/271)
- Recover from nil pointers when logging by
[@&open-telemetry#8203;dims](https://togithub.com/dims) in
[https://github.com/kubernetes/klog/pull/279](https://togithub.com/kubernetes/klog/pull/279)

#### New Contributors

- [@&open-telemetry#8203;phillipsj](https://togithub.com/phillipsj) made their first
contribution in
[https://github.com/kubernetes/klog/pull/271](https://togithub.com/kubernetes/klog/pull/271)

**Full Changelog**:
kubernetes/klog@v2.40.0...v2.40.1

###
[`v2.40.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.40.0):
Prepare klog release for Kubernetes v1.24

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.30.0...v2.40.0)

#### What's Changed

- structured logging: support values with line breaks by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/273](https://togithub.com/kubernetes/klog/pull/273)
- Fix klog lock release on panic error by
[@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) in
[https://github.com/kubernetes/klog/pull/272](https://togithub.com/kubernetes/klog/pull/272)
- add format test for KObjs by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/276](https://togithub.com/kubernetes/klog/pull/276)
- add Verbose.InfoSDepth by [@&open-telemetry#8203;pohly](https://togithub.com/pohly)
in
[https://github.com/kubernetes/klog/pull/277](https://togithub.com/kubernetes/klog/pull/277)

#### Known Issues

-
[https://github.com/kubernetes/klog/issues/278](https://togithub.com/kubernetes/klog/issues/278)

#### New Contributors

- [@&open-telemetry#8203;astraw99](https://togithub.com/astraw99) made their first
contribution in
[https://github.com/kubernetes/klog/pull/272](https://togithub.com/kubernetes/klog/pull/272)

**Full Changelog**:
kubernetes/klog@v2.30.0...v2.40.0

###
[`v2.30.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.30.0):
Prepare klog release for Kubernetes v1.23 (take 2)

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.20.0...v2.30.0)

#### What's Changed

- Fix logcheck exit function by
[@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) in
[https://github.com/kubernetes/klog/pull/265](https://togithub.com/kubernetes/klog/pull/265)
- custom marshaler for ObjectRef by
[@&open-telemetry#8203;pohly](https://togithub.com/pohly) in
[https://github.com/kubernetes/klog/pull/266](https://togithub.com/kubernetes/klog/pull/266)

#### New Contributors

- [@&open-telemetry#8203;luyou86](https://togithub.com/luyou86) made their first
contribution in
[https://github.com/kubernetes/klog/pull/265](https://togithub.com/kubernetes/klog/pull/265)

**Full Changelog**:
kubernetes/klog@v2.20.0...v2.30.0

###
[`v2.20.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.20.0):
Prepare klog release for Kubernetes v1.23

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.10.0...v2.20.0)

Changes are here :
kubernetes/klog@v2.10.0...v2.20.0

since we moved to logr v1.0.0, there are incompatible changes:

    - klogger.Enabled: changed from func() bool to func(int) bool
- klogger.Info: changed from func(string, ...interface{}) to func(int,
string, ...interface{})
    - klogger.V: removed
- klogger.WithCallDepth: changed from func(int)
github.com/go-logr/logr.Logger to func(int)
github.com/go-logr/logr.LogSink
- klogger.WithName: changed from func(string)
github.com/go-logr/logr.Logger to func(string)
github.com/go-logr/logr.LogSink
- klogger.WithValues: changed from func(...interface{})
github.com/go-logr/logr.Logger to func(...interface{})
github.com/go-logr/logr.LogSink

[`83653a6`](https://togithub.com/kubernetes/klog/commit/83653a6deebf)
Update to newest versions of golang 1.17.x
[`d648c2e`](https://togithub.com/kubernetes/klog/commit/d648c2e42d30)
fix file-based filtering symbolization
[`8ee3d65`](https://togithub.com/kubernetes/klog/commit/8ee3d652c96b)
export ClearLogger
[`4171f3c`](https://togithub.com/kubernetes/klog/commit/4171f3c1be1b)
Switching to logr tag v1.0.0
[`9ab3c2b`](https://togithub.com/kubernetes/klog/commit/9ab3c2b56cb2)
add serathius as approvers of klog

###
[`v2.10.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.10.0):
One more change to support 1.22 release

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.9.0...v2.10.0)

Changes are here :
kubernetes/klog@v2.9.0...v2.10.0

new function added:

    func KObjs(arg interface{}) []ObjectRef

###
[`v2.9.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.9.0):
Prepare release for Kubernetes v1.22

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.8.0...v2.9.0)

Changes are here :
kubernetes/klog@v2.8.0...v2.9.0

[`6a9ef3f`](https://togithub.com/kubernetes/klog/commit/6a9ef3fa9a15)
fix typo
[`59f7cb5`](https://togithub.com/kubernetes/klog/commit/59f7cb505f58)
fix byte array display in InfoS and ErrorS
[`cf22f1e`](https://togithub.com/kubernetes/klog/commit/cf22f1e79721)
Call logr with call depth
[`e95c7e3`](https://togithub.com/kubernetes/klog/commit/e95c7e303755)
make SetLogger thread-safe
[`2728fe1`](https://togithub.com/kubernetes/klog/commit/2728fe192acc)
check usage of format specifier in structured log func
[`a18bc97`](https://togithub.com/kubernetes/klog/commit/a18bc976a212)
Fix by pr suggestions
[`4e4135c`](https://togithub.com/kubernetes/klog/commit/4e4135c3dd8a)
Add check for InfoS & ErrorS parameters

###
[`v2.8.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.8.0):
Bug fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.7.0...v2.8.0)

###
[`v2.7.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.7.0):
Miscellaneous fixes for structured logging for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.6.0...v2.7.0)

Changes are here :
kubernetes/klog@v2.6.0...v2.7.0

###
[`v2.6.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.6.0):
Adding a linter for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.5.0...v2.6.0)

Changes are here :
kubernetes/klog@v2.5.0...v2.6.0

please see
https://github.com/kubernetes/klog/tree/master/hack/tools/logcheck

###
[`v2.5.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.5.0):
Prepare release for Kubernetes v1.21

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.4.0...v2.5.0)

Changes are here :
kubernetes/klog@v2.4.0...v2.5.0

klog.go has new API:

+func ErrorSDepth(depth int, err error, msg string, keysAndValues
...interface{}) {
+func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) {

klogr/klogr.go has new API:

    func (l klogger) WithCallDepth(depth int) logr.Logger {
    func NewWithOptions(options ...Option) logr.Logger {
    func WithFormat(format Format) Option {

###
[`v2.4.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.4.0):
Prepare release for Kubernetes v1.20

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.3.0...v2.4.0)

Changes are here :
kubernetes/klog@v2.3.0...v2.4.0

###
[`v2.3.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.3.0):
Fix Typo-ed Method Error -&gt; ErrorS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.2.0...v2.3.0)

Changes are here :
kubernetes/klog@v2.2.0...v2.3.0

###
[`v2.2.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.2.0):
Dependency update and bugfix for InfoS

[Compare
Source](https://togithub.com/kubernetes/klog/compare/2.1.0...v2.2.0)

- [`2e691eb`](https://togithub.com/kubernetes/klog/commit/2e691eb3eeb3)
Fix missing fields in verbose InfoS
- [`966c986`](https://togithub.com/kubernetes/klog/commit/966c98681ca0)
feat use go-logr v0.2.0

Changes are here :
kubernetes/klog@v2.1.0...v2.2.0

###
[`v2.1.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.1.0):
Better support for Structured Logging

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v2.0.0...2.1.0)

We are now enforcing API compatibility, added Windows based tests, and
have tweaked the structured logging methods after some real world
experience updating kubernetes main repo.

- [`bbd9ca1`](https://togithub.com/kubernetes/klog/commit/bbd9ca1) Add
tests for error in InfoS
- [`1ccc0e1`](https://togithub.com/kubernetes/klog/commit/1ccc0e1) fix
imported bug time encode format form kvlistFormat
- [`dd4d1a6`](https://togithub.com/kubernetes/klog/commit/dd4d1a6) fix
typo in README.md
- [`49123d4`](https://togithub.com/kubernetes/klog/commit/49123d4)
ErrorS(nil, ...) should call loggr.Error(nil, ...)
- [`5b199cd`](https://togithub.com/kubernetes/klog/commit/5b199cd) Fix
documentation for V(level)
- [`d1eb30f`](https://togithub.com/kubernetes/klog/commit/d1eb30f) Add
apidiff script to check go signature changes
- [`dc505bf`](https://togithub.com/kubernetes/klog/commit/dc505bf)
Switch slack channel to #klog
- [`a47ebb9`](https://togithub.com/kubernetes/klog/commit/a47ebb9) Add
example for co-existence of klog v1 and v2
- [`134f148`](https://togithub.com/kubernetes/klog/commit/134f148)
logName(): lazily lookup userName instead of on init()
- [`db06a1b`](https://togithub.com/kubernetes/klog/commit/db06a1b) fix
serialization of special html chars
- [`5727d2a`](https://togithub.com/kubernetes/klog/commit/5727d2a) Fix
Windows integration tests
- [`edbc1d3`](https://togithub.com/kubernetes/klog/commit/edbc1d3)
test(\*): TestRollover failed randomly on Windows
- [`6f99060`](https://togithub.com/kubernetes/klog/commit/6f99060) Add
LogToStderr, a programatic way to log exclusively to stderr or not

###
[`v2.0.0`](https://togithub.com/kubernetes/klog/releases/tag/v2.0.0):
Release to support Kubernetes v1.19

[Compare
Source](https://togithub.com/kubernetes/klog/compare/v1.0.0...v2.0.0)

Beware of type change: `Verbose`

New Methods:

-   `SetLogger` (override logger to set a custom implementation)
-   `InfoS` (structured logging)
-   `ErrorS` (structured logging)

Changes are here :
kubernetes/klog@v2.0.0-rc.1...v2.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on tuesday" (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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/open-telemetry/opentelemetry-collector-contrib).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: opentelemetrybot <107717825+opentelemetrybot@users.noreply.github.com>
Co-authored-by: Yang Song <songy23@users.noreply.github.com>
Co-authored-by: Tyler Helmuth <12352919+TylerHelmuth@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants