log4j基础-属性文件和使用

本文介绍了Log4j的基本配置方法及其应用场景,包括不同类型的输出方式和优先级设置。通过属性文件实现日志记录,并展示了如何针对特定包或类定制日志级别。

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

并非任何操作都要写日志,我会用日志记录登录、登出、银行交易、多平台数据交互等操作,因功能而定。

log4j的配置分三类(我知道的),1:属性文件log4j.properties;2:xml文件log4j.xml;3:类配置。

这里只介绍属性文件的使用。在此之前,先了解一下日志的输出方式和优先级:

  org.apache.log4j.ConsoleAppender(控制台)
  org.apache.log4j.FileAppender(文件)
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

优先级:OFF > FATAL > ERROR > WARN > INFO > DEBUG,详细配置会后续给出,下面只是基础配置:

log4j.rootLogger=info, myOut

### log message###
log4j.appender.myOut=org.apache.log4j.ConsoleAppender
log4j.appender.myOut.Target=System.out
log4j.appender.myOut.layout=org.apache.log4j.PatternLayout
log4j.appender.myOut.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

有了这些,日志就可以使用了,rootLogger定义,比info级别低的日志内容不会被输出,也就是debug级别的不会被输出;日志将根据myOut进行输出。

log4j.appender定义myOut(这个名字可以自定义,一一对应即可)的输出方式、输出样式。这里是控制台输出;对于样式,可以去网上搜,找到一个合适的就用着吧,不要花哨。

如何使用:

import org.apache.log4j.Logger;

Logger log = Logger.getLogger(XX.Class);// 根据CLASS输出

Logger log = Logger.getLogger(this.getClass());// 当前实例的CLASS,本质同上

Logger log = Logger.getLogger("属性文件中自定义");// 后续文章有讲解

 

log.debug("debug");//不会输出,因为属性文件的级别是info

log.info("info");//根据样式,输出16:14:39,843  INFO LogTest:14 - info

log.error("error");//优先级高于info的会输出,输出16:15:40,078 ERROR LogTest:15 - error

 

针对包或类的日志输出,属性文件中追加一下配置

log4j.logger.java.util.ArrayList=DEBUG

log4j.logger.com.log.test=DEBUG

以上,com.log.test是自定义包,ArrayList不用多说了吧,测试如下:

Logger logA = Logger.getLogger(ArrayList.Class);

log.info("log_info");//16:14:39,843  INFO LogTest:14 - log_info

log.debug("debug");//无输出

logA.debug("array_debug");// 16:15:40,078 DEBUG ArrayList:16 - array_debug

可以看到,虽然全局级别为info,但是针对ArrayList配置后,ArrayList的debug是可以显示的。

 

基本配置和使用先到这,后续文章会讨论其他问题,如日志写入到文件、自定义配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值