This is an automated email from the ASF dual-hosted git repository.
chia7712 pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new d31cbf59dee KAFKA-18831 Migrating to log4j2 introduce behavior changes
of adjusting level dynamically (#18969)
d31cbf59dee is described below
commit d31cbf59dee6a77c1c673db06900ecc238894ed7
Author: TengYao Chi <[email protected]>
AuthorDate: Fri Feb 21 16:12:58 2025 +0800
KAFKA-18831 Migrating to log4j2 introduce behavior changes of adjusting
level dynamically (#18969)
fix the following behavior changes.
1) in log4j 1, users can't change the logger by parent if the logger is
declared by properties explicitly. For example, `org.apache.kafka.controller`
has level explicitly in the properties. Hence, we can't use
"org.apache.kafka=INFO" to change the level of `org.apache.kafka.controller` to
INFO. By contrast, log4j2 allows us to change all child loggers by the parent
logger.
2) in log4j2, we can change the level of root to impact all loggers' level.
By contrast, log4j 1 can't.
Reviewers: Chia-Ping Tsai <[email protected]>
---
core/src/main/scala/kafka/utils/LoggingController.scala | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/core/src/main/scala/kafka/utils/LoggingController.scala
b/core/src/main/scala/kafka/utils/LoggingController.scala
index 331c6772ca9..9d8de03a6c5 100755
--- a/core/src/main/scala/kafka/utils/LoggingController.scala
+++ b/core/src/main/scala/kafka/utils/LoggingController.scala
@@ -112,11 +112,11 @@ private class Log4jCoreController extends
LoggingControllerDelegate {
val level = Level.toLevel(logLevel.toUpperCase(Locale.ROOT))
if (loggerName == ROOT_LOGGER) {
- Configurator.setAllLevels(LogManager.ROOT_LOGGER_NAME, level)
+ Configurator.setLevel(LogManager.ROOT_LOGGER_NAME, level)
true
} else {
if (loggerExists(loggerName) && level != null) {
- Configurator.setAllLevels(loggerName, level)
+ Configurator.setLevel(loggerName, level)
true
}
else false
@@ -124,12 +124,13 @@ private class Log4jCoreController extends
LoggingControllerDelegate {
}
override def unsetLogLevel(loggerName: String): Boolean = {
+ val nullLevel: Level = null
if (loggerName == ROOT_LOGGER) {
- Configurator.setAllLevels(LogManager.ROOT_LOGGER_NAME, null)
+ Configurator.setLevel(LogManager.ROOT_LOGGER_NAME, nullLevel)
true
} else {
if (loggerExists(loggerName)) {
- Configurator.setAllLevels(loggerName, null)
+ Configurator.setLevel(loggerName, nullLevel)
true
}
else false