Java日志(二):log4j(apache 的 log for java)

其源码在log4j-1.2.17.jar包内,
一、log4j的日志工作机制原理大概是:
1、加载配置
(1)log4j没有默认的打印输出配置,如果没有配置则提示找不到配置。
(2)log4j在启动的时候,可以通过代码的new配置对象方法来加载配置,也可以通过配置文件的方法来加载,手动指定配置文件:PropertyConfigurator.configureAndWatch("log4j.properties");(默认在classpath(user.dir)路径下加载配置文件log4j.properties)。
(3)启动时log4j会开启一个线程,默认60秒循环检查配置文件的改动,若改动则重新加载配置文件。
(4)log4j加载配置文件,形成properties对象,再通过匹配其属性名把配置内容一一设置到java对象中。
2、各个类的作用
(1)org.apache.log4j.PatternLayout属于Layout多个子类中的一个,用于格式化日志,比如new PatternLayout("%m%n")%m输出内容,%n输出换行符。
(2)org.apache.log4j.ConsoleAppender属于Appender多个实现类中的一个,专门用于输出日志到控制台,它可以套用一种输出格式Layoutnew ConsoleAppender(new PatternLayout("%m%n"))
(3)可以把多个不同的Appender添加到Logger:Logger.getRootLogger().addAppender(consoleAppender)
3、日志输出过程机制
(1)Logger进行日志输出时,先把日志信息封装成LoggingEvent对象,再把event对象传递进去给各个Appender进行输出。
(2)比如logger.log(“msg”),会先查找logger自己的所有Appender进行打印日志,然后传递给logger的父Logger的所有Appender进行打印,直到最顶端的rootLogger为止。
(3)日志输出分几个等级LevelALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF,比如设置了WARN等级,那么比它低的INFO等这些等级都不会打印输出。
(4)如果logger没有设置Level,那么使用其父Logger的Level,形成依赖链。
(5)输出到每个Appender,都会先校验日志的输出级别是否符合自己的Level。
4、org.apache.log4j.DailyRollingFileAppender的机制
DailyRollingFileAppender是FileAppender的子类,它除了有FileApp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值