log4j用properties形式进行配置

最近有问题,想单独打一个日志进行排查,但之前系统中用的都是xml进行log4j的配置,这个应用用的是properties,于是照葫芦画瓢在文件里新增一个appender。丫的没想到根本不生效,前面搞这玩意的同事用法根本不对,导致文件就是个摆设,于是不得不自己研究下。

参考:log4j自定义日志单独输出到指定文件夹_log4j 将日志输出到指定文件夹-CSDN博客

log4j配置详解_log4j.appender.logfile.file-CSDN博客

我自己配置如下:

#logger别名log_mail,指向我新定义的appender,也就是"mail"
log4j.logger.log_mail=error,mail

#新定义的appender:"mail",配置输出到文件,且大小到达指定尺寸的时候产生一个新的文件
log4j.appender.mail=org.apache.log4j.RollingFileAppender
#表示日志不输出到父类的日志文件中,因为我们所有自定义的日志类都是继承rootLogger根节点的日志类,默认子类的日志会输出到父类指定的文件夹中,默认additivity是为true的
log4j.additivity.mail=false
log4j.appender.mail.Threshold=ERROR
#可以灵活地指定布局模式
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.conversionPattern=%-5p - %d{yyyy-MM-dd HH:mm:ss} [%t]%l -- %m%n
log4j.appender.mail.MaxFileSize=50MB
#注意这里路径一定要写对,之前copy同事瞎写的路径导致咋也打不出来,脑淤血
log4j.appender.mail.File=/export/Logs/message-businessid.log
log4j.appender.mail.append=true
log4j.appender.mail.encoding=UTF-8

配置好之后在代码中引用即可

private final Logger mailLog = LoggerFactory.getLogger("log_mail");

这样搞完又发现个问题,这个日志不仅打进了我自己定义的日志路径,还打到了catalina.out这个文件,这是因为上面属性设置的时候additivity不是appender的属性,而是logger的属性,所以上面

#表示日志不输出到父类的日志文件中,因为我们所有自定义的日志类都是继承rootLogger根节点的日志类,默认子类的日志会输出到父类指定的文件夹中,默认additivity是为true的
log4j.additivity.mail=false

要改成

#表示日志不输出到父类的日志文件中,因为我们所有自定义的日志类都是继承rootLogger根节点的日志类,默认子类的日志会输出到父类指定的文件夹中,默认additivity是为true的
log4j.additivity.log_mail=false

因为我给logger起的名气是log_mail

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值