# Licensed to the Apache Software Foundation (ASF) under one or more                                                                                                                                                                          
# contributor license agreements.  See the NOTICE file distributed with                                                                                                                                                                       
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with                                                                                                                                                                        
# the License.  You may obtain a copy of the License at                                                                                                                                                                                       
#                                                                                                                                                                                             
#    http://www.apache.org/licenses/LICENSE-2.0                                                
#                                                                                                                                                                                             
# Unless required by applicable law or agreed to in writing, software                                                                                                                         
# distributed under the License is distributed on an "AS IS" BASIS,                                                                                                                           
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.                     
# See the License for the specific language governing permissions and                          
# limitations under the License.                                                                                                                                                              
                                                                                               
# Unspecified loggers and loggers with additivity=true output to server.log and stdout         
# Note that INFO only applies to unspecified loggers, the log level of the child logger is used otherwise                                                                                                                                                                       
log4j.rootLogger=INFO, stdout, kafkaAppender                                                   
                                                                                               
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.kafkaAppender=org.apache.log4j.RollingFileAppender
log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log                                 
log4j.appender.kafkaAppender.MaxFileSize=10MB
log4j.appender.kafkaAppender.MaxBackupIndex=10
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout                                                                                                                                                                                                                                                           
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                        
                                                                                               
log4j.appender.stateChangeAppender=org.apache.log4j.RollingFileAppender
log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log                     
log4j.appender.stateChangeAppender.MaxFileSize=10MB
log4j.appender.stateChangeAppender.MaxBackupIndex=10
log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout                                                                                                                      
log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                                                                                                                 
                                                                                                                                                                                                                                                                                                                             
log4j.appender.requestAppender=org.apache.log4j.RollingFileAppender
log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log                                                                 
log4j.appender.requestAppender.MaxFileSize=10MB
log4j.appender.requestAppender.MaxBackupIndex=10
log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout   
log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                                                                                     
                                                                                                                                        
log4j.appender.cleanerAppender=org.apache.log4j.RollingFileAppender
log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log                                                                   
log4j.appender.cleanerAppender.MaxFileSize=10MB
log4j.appender.cleanerAppender.MaxBackupIndex=10
log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout                                                                                          
log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                      
                                                                                                                                        
log4j.appender.controllerAppender=org.apache.log4j.RollingFileAppender
log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log                        
log4j.appender.controllerAppender.MaxFileSize=10MB
log4j.appender.controllerAppender.MaxBackupIndex=10
log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout                                                                                                                                                                       
log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                   
                                                                                                                       
log4j.appender.authorizerAppender=org.apache.log4j.RollingFileAppender
log4j.appender.authorizerAppender.File=${kafka.logs.dir}/kafka-authorizer.log                  
log4j.appender.authorizerAppender.MaxFileSize=10MB
log4j.appender.authorizerAppender.MaxBackupIndex=10
log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout                                                                                       
log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n                                                                                  
                                                                                                                                                                                                                                              
# Change the line below to adjust ZK client logging                                                                    
log4j.logger.org.apache.zookeeper=INFO                                                         
                                                                                               
# Change the two lines below to adjust the general broker logging level (output to server.log and stdout)                                                                                                                                                                                                                    
log4j.logger.kafka=INFO                                                                        
log4j.logger.org.apache.kafka=INFO                                                             
                                                                                               
# Change to DEBUG or TRACE to enable request logging                                                                   
log4j.logger.kafka.request.logger=WARN, requestAppender                                        
log4j.additivity.kafka.request.logger=false                                                                            

# Uncomment the lines below and change log4j.logger.kafka.network.RequestChannel$ to TRACE for additional output                                                                                                                                                                                                             
# related to the handling of requests                                                                                  
#log4j.logger.kafka.network.Processor=TRACE, requestAppender                                                           
#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender                                                                                                   
#log4j.additivity.kafka.server.KafkaApis=false                                                                         
log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender                                                       
log4j.additivity.kafka.network.RequestChannel$=false                                                                                                          
                                                                                                                       
# Change the line below to adjust KRaft mode controller logging                                                        
log4j.logger.org.apache.kafka.controller=INFO, controllerAppender                                                                                             
log4j.additivity.org.apache.kafka.controller=false                                                                     
                                                                                                                       
# Change the line below to adjust ZK mode controller logging                                                           
log4j.logger.kafka.controller=TRACE, controllerAppender                                                                                                       
log4j.additivity.kafka.controller=false                                                                                

log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender                                                                                                       
log4j.additivity.kafka.log.LogCleaner=false                                                                                                                   

log4j.logger.state.change.logger=INFO, stateChangeAppender                                                                                                    
log4j.additivity.state.change.logger=false                                                                                                                    

# Access denials are logged at INFO level, change to DEBUG to also log allowed accesses                                                                       
log4j.logger.kafka.authorizer.logger=INFO, authorizerAppender                                                                                                 
log4j.additivity.kafka.authorizer.logger=false  