Log4j笔记

Log4j的设计思想非常简单,即logger和appender

logger作用就是在代码里使用这个logger,打印信息

logger后可以跟一个或多个appender,appender用以表明吧日志保存到哪里,比如直接命令行显示 ,日志文件等


log4j的配置文件有properties和xml两种,后文中采用properties的配置方法。


我们命名一个叫METRICS的appender, 用来把日志输出到console

log4j.appender.METRICS=org.apache.log4j.ConsoleAppender
log4j.appender.METRICS.layout=org.apache.log4j.PatternLayout
log4j.appender.METRICS.layout.ConversionPattern=%d %p [%c] - %m%n


我们可以自定一个Logger,并把它的additivity设为false

log4j.logger.warnLogger=WARN,METRICS
log4j.additivity.warnLogger=false

因为所有的logger都继承自rootLogger,additivity为false表明子logger只在自己的appender中输出,为true时会导致rootLogger也跟着输出


自定义logger也可以是个package名,如spring 的配置文件为:

log4j.logger.org.springframework=WARN, org.springframework, METRICS
log4j.appender.org.springframework=org.apache.log4j.FileAppender
log4j.appender.org.springframework.File=d\:spring.log
log4j.appender.org.springframework.Encoding=utf8
log4j.appender.org.springframework.layout=org.apache.log4j.PatternLayout
log4j.appender.org.springframework.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
这样就会管理spring的日志系统,因为spring中的logger是获取名为 org.springframework的logger


最后注意一定要配置rootLogger,其作用就是当在配置文件中找不到相应的logger时(按名称,按包名),默认使用rootLogger,

log4j.rootLogger=WARN,METRICS


在java代码中使用Logger的方法非常简单。

private static Logger logx = Logger.getLogger(CategoryServiceTest.class);

CategoryServiceTest.class 与所在的类保持一致,其实穿进去的是这个class的实际路径名(是一个String),


也可以通过以下方式获取自定义Logger

private static Logger logx = Logger.getLogger(“warnLogger");
之后,根据 配置使用 logx.error(""),logx.warn(""), logx.info("")打印信息即可


NOTICE:上午的时候logger打印信息时,layout格式化输出死活不出来,而且不能按字符串getLogger,最后才发现导入Logger时引错包了。

好二的人生!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值