更多精彩原創內容請關注:JavaInterview,歡迎 star,支持鼓勵如下做者,萬分感謝。git
Java的愛好者們,必定對log4j是特別的熟悉,基本大多數項目都會選擇log4j、slg4j來進行log記錄。 可是對於log4j.properties的配置可能理解的不是特別熟悉,全部我準備整理一下,同時也提升一下本身對於log4j.properties的理解。github
rootLogger 指定log打印源,DEBUG爲默認打印級別 在rootLogger裏面指定的打印源,在使用log4j打印log的時候,就會往全部rootLogger指定的打印源裏面打印log信息。apache
log4j.logger.org.apache.kafka 打印源爲kafka時指定log默認打印級別,不設置不會打印log到kafkajson
log4j.rootLogger=DEBUG,console,file,kafka
log4j.logger.org.apache.kafka=WARN
複製代碼
#輸出日誌到控制檯
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=all
log4j.appender.console.layout=org.apache.log4j.PatternLayout
#控制檯日誌格式
log4j.appender.console.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%c\:%L]-[%p] %m%n
複製代碼
#輸出日誌到kafka
log4j.appender.kafka=org.apache.kafka.log4jappender.KafkaLog4jAppender
#設置topic
log4j.appender.kafka.topic=pro-log
#設置kafka鏈接地址
log4j.appender.kafka.brokerList=localhost:9092
log4j.appender.kafka.compressionType=none
log4j.appender.kafka.requiredNumAcks=0
#設置是否異步
log4j.appender.kafka.syncSend=true
log4j.appender.kafka.level=DEBUG
log4j.appender.kafka.layout=org.apache.log4j.PatternLayout
log4j.appender.kafka.layout.ConversionPattern= %m
複製代碼
# appender file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#設置log文件名
log4j.appender.file.file=logs/slf4j4json.log
#log是否追加
log4j.appender.file.append=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
#文件大小
log4j.appender.file.MaxFileSize=100MB
#文件保留個數
log4j.appender.file.MaxBackupIndex=5
複製代碼
好比我只想往kafka中寫入log、或者我只想往文件中寫入log,咱們能夠按下面的方式進行配置打印源。 經過log4j.logger配置單個的打印源,不實用rootLogger配置。app
# 單獨指定打印源爲kafka
log4j.logger.kafka_log=INFO,kafka_log
log4j.logger.org.apache.kafka=INFO
log4j.appender.kafka_log=org.apache.kafka.log4jappender.KafkaLog4jAppender
log4j.appender.kafka_log.topic=pro-log
log4j.appender.kafka_log.brokerList=localhost:9092
log4j.appender.kafka_log.compressionType=none
log4j.appender.kafka_log.requiredNumAcks=0
log4j.appender.kafka_log.syncSend=false
log4j.appender.kafka_log.layout=org.apache.log4j.PatternLayout
log4j.appender.kafka_log.layout.ConversionPattern= %m
# 單獨指定打印源爲file
log4j.logger.file_log=INFO,file_log
log4j.appender.file_log=org.apache.log4j.RollingFileAppender
log4j.appender.file_log.file=logs/slf4j4json.log
log4j.appender.file_log.append=true
log4j.appender.file_log.layout=org.apache.log4j.PatternLayout
log4j.appender.file_log.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %-60c %x - %m%n
log4j.appender.file_log.MaxFileSize=100MB
log4j.appender.file_log.MaxBackupIndex=5
複製代碼
如上配置好以後,使用LoggerFactory.getName("kafka_log")獲取kafka打印源; LoggerFactory.getName("file_log")獲取file打印源異步
demo地址maven
json格式log打印
json格式log打印詳細介紹以及maven jar下載ui
有問題歡迎你們指正,在下方進行評論討論。spa