log4j总结-通过代码动态创建一个Logger

本文介绍了Log4j的基本配置方法,包括通过Spring初始化Log4j的方式及直接使用Log4j进行配置的方法,并详细解释了如何创建Logger和Appender,以及它们在日志输出过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过代码动态创建一个Logger和Appender

 

        LoggerRepository repository = LogManager.getLoggerRepository();
        Logger dbossClientLogger = repository.getLogger("com.duitang.dboss.client");
        dbossClientLogger.setAdditivity(false);
        dbossClientLogger.setLevel(Level.INFO);
        DailyRollingFileAppender appender = new DailyRollingFileAppender(
                                                                         new PatternLayout(
                                                                                           "%d{yyyy-MM-dd HH:mm:ss} [%p] %c %x - %m%n"),
                                                                         "/duitang/logs/usr/japa/dboss.log",
                                                                         "yyyy-MM-dd");
        dbossClientLogger.addAppender(appender);

 

log4j的几个问题:

1. spring如何初始化log4j?
2. 不使用spring如何初始化log4j?
3. log4j的logger和appender如何定义?

spring 初始化流程
1.org.springframework.web.util.Log4jConfigListener
2.org.springframework.util.Log4jConfigurer.initLogging()
3.调用log4j的入口
org.apache.log4j.xml.DOMConfigurator.configure(url)

org.apache.log4j.xml.PropertyConfigurator.configure(url)


RollingFileAppender和DailyRollingFileAppender:

log4j提供RollingFileAppender和DailyRollingFileAppender将日志记录输出到文件。RollingFileAppender按log文件最大长度限度生成新文件,DailyRollingFileAppender按日期生成新文件。

log4j.rootCategory=INFO, CONSOLE,R
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.base}/logs/portal.log
log4j.appender.R.Encoding=GBK
log4j.appender.R.MaxFileSize=256KB
log4j.appender.R.Append=true
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d %t %-5p [%c{1}:%L] %m%n

 
上面是使用RollingFileAppender的写法,将会在Tomcat的logs目录下,生成portal.log文件,当文件大小超过256KB时,将原来的文件更名为portal.log.1,再使用portal.log接收新的日志记录。

log4j.appender.R.MaxBackupIndex=10表示只保存10个备份文件。

下面是使用DailyRollingFileAppender的写法,配置完成的当天, 会在Tomcat的logs目录下,生成名为portal.log的文件,比如今天是2010-01-13, 到明天这个文件将更名为portal.log2010-01-13.log

log4j.rootCategory=INFO, CONSOLE,DailyRolling
log4j.appender.DailyRolling=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DailyRolling.File=${catalina.base}/logs/portal.log
log4j.appender.DailyRolling.DatePattern=yyyy-MM-dd'.log'
log4j.appender.DailyRolling.layout=org.apache.log4j.PatternLayout
log4j.appender.DailyRolling.layout.ConversionPattern=%-d %t %-5p [%c{1}:%L] %m%n

 

 

logger的additivity

 

它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值