关于Log4j的使用问题

1.业务场景

需要单独记录某些满足条件的消息,记录到日志上,并可以根据文件名进行查询日志,可能一天的消息比较多,当天需要多个文件记录

2遇到的问题

2.1如何按天生成日志文件,并限制文件大小

由于用的是log4j1.x的版本,由于版本比较低,本身不提供同时满足按天生成日志,限制文件大小和生成多个文件的需求,所以查看fileAppender代码,使用RollingFileAppender可以设置文件大小和限制文件生成的个数,基于这个基础,自定义一个RollingFileAppender,重写setFile()方法,在super.setFile()前切入自定义文件名的操作,就可解决了

2.2自定义好的fileAppender,使用不生效

忘记了定义好的appder需要在其使用的地方进行定义,格式为level,appender1,appender2...

定义好appender后,并在rootLog上添加自定义的appender,

2.3日志文件生成了,也有文件了,但是文件中内容除了当前需求的日志,还有很多其它的日志内容

后来考虑到可能是因为同一个文件,我自定义的Log和项目中封装的Log的底层其实是同一个Log对象,虽然可以通过日志级别info,error等来区分我们是否需要记录到文件中,但是本质上我们也只是相当于挑选info级别的一部分需要的进行记录,所以不太合理;

最后决定把日志数据放入到另一个java中记录,而且通过debug查看可以推测到,log4j它的appender是从子类到父类中的,所有都会生效,所以慎重在rotLogger上添加(不然可能会出现一大堆其它地方的日志也出现在当前日志文件中),最好是只添加到我们需要的地方

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值