Skip to content

Commit

Permalink
Make SLF4J API use Log4j2 as the implementation (#1477)
Browse files Browse the repository at this point in the history
  • Loading branch information
efeg authored and Adem Efe Gencer committed Feb 26, 2021
1 parent 3893318 commit 2d0d371
Show file tree
Hide file tree
Showing 6 changed files with 140 additions and 57 deletions.
17 changes: 16 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,12 @@ project(':cruise-control-core') {
}

dependencies {
configurations.all {
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'log4j', module: 'log4j'
}
compile "org.slf4j:slf4j-api:1.7.30"
compile "org.apache.logging.log4j:log4j-slf4j-impl:2.14.0"
compile 'junit:junit:4.13'
compile 'org.apache.commons:commons-math3:3.6.1'
compile 'org.eclipse.jetty:jetty-servlet:9.4.35.v20201120'
Expand Down Expand Up @@ -223,9 +228,14 @@ project(':cruise-control') {
}

dependencies {
configurations.all {
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'log4j', module: 'log4j'
}
compile project(':cruise-control-metrics-reporter')
compile project(':cruise-control-core')
compile "org.slf4j:slf4j-api:1.7.30" // TODO: Upgrade log4j to log4j2 to use async logger.
compile "org.apache.logging.log4j:log4j-slf4j-impl:2.14.0"
compile "org.apache.zookeeper:zookeeper:${zookeeperVersion}"
compile "org.apache.kafka:kafka_2.12:$kafkaVersion"
compile "org.apache.kafka:kafka-clients:$kafkaVersion"
Expand Down Expand Up @@ -277,7 +287,7 @@ project(':cruise-control') {

tasks.create(name: "copyDependantLibs", type: Copy) {
from (configurations.testRuntime) {
include('slf4j-log4j12*')
include('log4j-slf4j-impl*')
}
from (configurations.runtime) {

Expand Down Expand Up @@ -347,7 +357,12 @@ project(':cruise-control-metrics-reporter') {
}

dependencies {
configurations.all {
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'log4j', module: 'log4j'
}
compile "org.slf4j:slf4j-api:1.7.30"
compile "org.apache.logging.log4j:log4j-slf4j-impl:2.14.0"
compile "org.apache.kafka:kafka_2.12:$kafkaVersion"
compile "org.apache.kafka:kafka-clients:$kafkaVersion"
compile 'junit:junit:4.13'
Expand Down
84 changes: 56 additions & 28 deletions config/log4j.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,63 @@
# Copyright 2017 LinkedIn Corp. Licensed under the BSD 2-Clause License (the "License"). See License in the project root for license information.
#

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.kafkaCruiseControlAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaCruiseControlAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.kafkaCruiseControlAppender.File=${kafka.logs.dir}/kafkacruisecontrol.log
log4j.appender.kafkaCruiseControlAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaCruiseControlAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.operationAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.operationAppender.DatePattern='.'yyyy-MM-dd
log4j.appender.operationAppender.File=${kafka.logs.dir}/kafkacruisecontrol-operation.log
log4j.appender.operationAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.operationAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

log4j.appender.requestAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.requestAppender.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.requestAppender.File=${kafka.logs.dir}/kafkacruisecontrol-request.log
log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n
rootLogger.level=INFO
appenders=console, kafkaCruiseControlAppender, operationAppender, requestAppender

property.filename=./logs

appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d] %p %m (%c)%n

appender.kafkaCruiseControlAppender.type=RollingFile
appender.kafkaCruiseControlAppender.name=kafkaCruiseControlFile
appender.kafkaCruiseControlAppender.fileName=${filename}/kafkacruisecontrol.log
appender.kafkaCruiseControlAppender.filePattern=${filename}/kafkacruisecontrol.log.%d{yyyy-MM-dd-HH}
appender.kafkaCruiseControlAppender.layout.type=PatternLayout
appender.kafkaCruiseControlAppender.layout.pattern=[%d] %p %m (%c)%n
appender.kafkaCruiseControlAppender.policies.type=Policies
appender.kafkaCruiseControlAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.kafkaCruiseControlAppender.policies.time.interval=1

appender.operationAppender.type=RollingFile
appender.operationAppender.name=operationFile
appender.operationAppender.fileName=${filename}/kafkacruisecontrol-operation.log
appender.operationAppender.filePattern=${filename}/kafkacruisecontrol-operation.log.%d{yyyy-MM-dd}
appender.operationAppender.layout.type=PatternLayout
appender.operationAppender.layout.pattern=[%d] %p [%c] %m %n
appender.operationAppender.policies.type=Policies
appender.operationAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.operationAppender.policies.time.interval=1

appender.requestAppender.type=RollingFile
appender.requestAppender.name=requestFile
appender.requestAppender.fileName=${filename}/kafkacruisecontrol-request.log
appender.requestAppender.filePattern=${filename}/kafkacruisecontrol-request.log.%d{yyyy-MM-dd-HH}
appender.requestAppender.layout.type=PatternLayout
appender.requestAppender.layout.pattern=[%d] %p %m (%c)%n
appender.requestAppender.policies.type=Policies
appender.requestAppender.policies.time.type=TimeBasedTriggeringPolicy
appender.requestAppender.policies.time.interval=1

# Loggers
log4j.logger.com.linkedin.kafka.cruisecontrol=INFO, kafkaCruiseControlAppender
log4j.logger.com.linkedin.kafka.cruisecontrol.detector=INFO, kafkaCruiseControlAppender
log4j.logger.operationLogger=INFO, operationAppender
logger.cruisecontrol.name=com.linkedin.kafka.cruisecontrol
logger.cruisecontrol.level=info
logger.cruisecontrol.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile

logger.detector.name=com.linkedin.kafka.cruisecontrol.detector
logger.detector.level=info
logger.detector.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile

logger.operationLogger.name=operationLogger
logger.operationLogger.level=info
logger.operationLogger.appenderRef.operationAppender.ref=operationFile

log4j.logger.CruiseControlPublicAccessLogger=INFO, requestAppender
log4j.additivity.kafka.request.logger=false
logger.CruiseControlPublicAccessLogger.name=CruiseControlPublicAccessLogger
logger.CruiseControlPublicAccessLogger.level=info
logger.CruiseControlPublicAccessLogger.appenderRef.requestAppender.ref=requestFile

rootLogger.appenderRefs=console, kafkaCruiseControlAppender
rootLogger.appenderRef.console.ref=STDOUT
rootLogger.appenderRef.kafkaCruiseControlAppender.ref=kafkaCruiseControlFile
28 changes: 19 additions & 9 deletions cruise-control-core/src/test/resources/log4j.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,27 @@
# Copyright 2017 LinkedIn Corp. Licensed under the BSD 2-Clause License (the "License"). See License in the project root for license information.
#

log4j.rootLogger=OFF, stdout
rootLogger.level=OFF
appenders=console

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d] %p %m (%c:%L)%n

log4j.logger.org.apache.kafka=ERROR
log4j.logger.kafka=ERROR
# Loggers
logger.orgApacheKafka.name=org.apache.kafka
logger.orgApacheKafka.level=error

logger.kafka.name=kafka
logger.kafka.level=error

# zkclient can be verbose, during debugging it is common to adjust is separately
log4j.logger.org.I0Itec.zkclient.ZkClient=WARN
log4j.logger.org.apache.zookeeper=WARN
logger.zkclient.name=org.I0Itec.zkclient.ZkClient
logger.zkclient.level=warn

logger.zookeeper.name=org.apache.zookeeper
logger.zookeeper.level=warn

log4j.logger.com.linkedin.cruisecontrol.monitor.sampling.newaggregator=ERROR
rootLogger.appenderRefs=console
rootLogger.appenderRef.console.ref=STDOUT
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,30 @@
# Copyright 2017 LinkedIn Corp. Licensed under the BSD 2-Clause License (the "License"). See License in the project root for license information.
#

log4j.rootLogger=OFF, stdout
rootLogger.level=OFF
appenders=console

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d] %p %m (%c:%L)%n

log4j.logger.org.apache.kafka=ERROR
log4j.logger.kafka=ERROR
# Loggers
logger.orgApacheKafka.name=org.apache.kafka
logger.orgApacheKafka.level=error

logger.kafka.name=kafka
logger.kafka.level=error

# zkclient can be verbose, during debugging it is common to adjust is separately
log4j.logger.org.I0Itec.zkclient.ZkClient=WARN
log4j.logger.org.apache.zookeeper=WARN
logger.zkclient.name=org.I0Itec.zkclient.ZkClient
logger.zkclient.level=warn

logger.zookeeper.name=org.apache.zookeeper
logger.zookeeper.level=warn

logger.cruisecontrol.name=com.linkedin.kafka.cruisecontrol
logger.cruisecontrol.level=error

log4j.logger.com.linkedin.kafka.cruisecontrol=ERROR
rootLogger.appenderRefs=console
rootLogger.appenderRef.console.ref=STDOUT
35 changes: 26 additions & 9 deletions cruise-control/src/test/resources/log4j.properties
Original file line number Diff line number Diff line change
@@ -1,13 +1,30 @@
#
# Copyright 2017 LinkedIn Corp. Licensed under the BSD 2-Clause License (the "License"). See License in the project root for license information.
#
log4j.rootLogger=OFF, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c:%L)%n
log4j.logger.org.apache.kafka.clients.Metadata=ERROR
log4j.logger.kafka.controller=ERROR
rootLogger.level=OFF
appenders=console

appender.console.type=Console
appender.console.name=STDOUT
appender.console.layout.type=PatternLayout
appender.console.layout.pattern=[%d] %p %m (%c:%L)%n

# Loggers
logger.metadata.name=org.apache.kafka.clients.Metadata
logger.metadata.level=error

logger.controller.name=kafka.controller
logger.controller.level=error

# zkclient can be verbose, during debugging it is common to adjust is separately
log4j.logger.org.I0Itec.zkclient.ZkClient=WARN
log4j.logger.org.apache.zookeeper=WARN
log4j.logger.com.linkedin.kafka=ERROR
logger.zkclient.name=org.I0Itec.zkclient.ZkClient
logger.zkclient.level=warn

logger.zookeeper.name=org.apache.zookeeper
logger.zookeeper.level=warn

logger.linkedinKafka.name=com.linkedin.kafka
logger.linkedinKafka.level=error

rootLogger.appenderRefs=console
rootLogger.appenderRef.console.ref=STDOUT
2 changes: 1 addition & 1 deletion kafka-cruise-control-start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ if [ -z "$KAFKA_LOG4J_OPTS" ]; then
LOG4J_DIR="$base_dir/config/log4j.properties"
# If Cygwin is detected, LOG4J_DIR is converted to Windows format.
(( CYGWIN )) && LOG4J_DIR=$(cygpath --path --mixed "${LOG4J_DIR}")
KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:${LOG4J_DIR}"
KAFKA_LOG4J_OPTS="-Dlog4j.configurationFile=file:${LOG4J_DIR}"
else
# create logs directory
if [ ! -d "$LOG_DIR" ]; then
Expand Down

0 comments on commit 2d0d371

Please sign in to comment.