Log4j

1。简介

Log4j是一个应用十分广泛的JAVA日志框架。

 

2。几个重要的概念

 

1)Logger

 

日志输出的实现类。

将日志分为TRACE,DEBUG,INFO,WARING,ERROR,FATAL6个级别,从左到右依次递增,

通过设置相应的级别可以选择性地输出日志内容。

命名实体,名字大小写敏感,名字上的层级关系和Logger本身的层级关系一致,

并且名字相当于ID,一个名字只能对应一个Logger实体。

 

Logger之间的层级关系:

和包之间的层级关系一致:假如一个Logger1的名字是另一个Logger2名字的前缀,并且Logger2中Logger1下一个字符为".",那么Logger1为Logger2的祖先,Logger2为Logger1的后代。

除此之外:root Logger处于顶级,它有2个特殊之处

(1)一直存在

(2)无法通过名字获取,而是通过Logger.getRootLogger()来获取,

其它的Logger则是通过Logger.getLogger(...)来获取。

 

注:Logger的创建顺序与层级关系无关。

 

日志级别的继承关系:

假如一个Logger没有显示声明一个日志级别,那么它将继承离它最近的被赋予日志级别的祖先的日志级别。

 

例如:

Logger---------LEVEL SET--------LEVEL

ROOT              DEBUG               DEBUG

X                     NULL                 DEBUG

X.Y                  NULL                 DEBUG

X.Y.Z               WARNING          WARING

 

2)Appender

 

日志的输出目标,可以是控制台,文件等。

并且一个Logger可对应多个Appender。

 

Appender的继承关系:

默认附加性的继承,而不同于日志级别的无显示声明才集成,

即假如root Logger有一文件Appender,则所有的日志至少拥有一个同样的文件Appender。

改变:logger.setAdditivity(false)

效果:从该logger开始的后代logger包括该logger将不再继承该logger的祖先的Appender

 

 

Logger
Name
Added
Appenders
Additivity
Flag
Output TargetsComment
rootA1not applicableA1The root logger is anonymous but can be accessed with the Logger.getRootLogger() method. There is no default appender attached to root.
xA-x1, A-x2trueA1, A-x1, A-x2Appenders of "x" and root.
x.ynonetrueA1, A-x1, A-x2Appenders of "x" and root.
x.y.zA-xyz1trueA1, A-x1, A-x2, A-xyz1Appenders in "x.y.z", "x" and root.
securityA-secfalseA-secNo appender accumulation since the additivity flag is set to false.
security.accessnonetrueA-sec

例如:

Logger------------------Appender Add----------Additivity----------Appenders Indeed

root                           console                        default               console               

com                           file1                              default               console,file1

com.spring                file2                               false                  file2

com.spring.bean       null                               default                file2

 

3)Layout

 

日志的输出格式。

 

3。配置

 

 目前支持properties和xml两种配置文件,这里只讲述log4j.properties文件的配置。

 

log4j.rootLogger = (%level%) [, appenderName]*

 

log4j.logger.%loggerName% = (%level%) [, appenderName]*

 

log4j.appender.%appenderName% =

log4j.appender.%appenderName%.%property% =

log4j.appender.%appenderName%.layout =

log4j.appender.%appenderName%.layout.%property% =

 

例如:

log4j.rootLogger=DEBUG, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout

# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN

 

4。参考资料

 

http://logging.apache.org/log4j/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值