log4j 的那些事

虽说 log4j 2.x 早就发布出来了,已经宣布不支持 log4j.properties

Configuration via property files is not supported.

 log4j 1.x 还在广泛使用,像 hadoop 2.3.0 就是还用着1.2.17 . 所以还是有必要了解 1.x 的两种配置方式:log4j.properties log4j.xml

log4j.properties 直接参考这里吧 http://www.blogjava.net/zJun/archive/2006/06/28/55511.html

log4j.xml 参考这里 http://www.cnblogs.com/kevin-yuan/archive/2012/11/23/2784610.html

这里说下当你的 log 打不出来怎么办?

一般是配置文件没有正确加载,或者配置不当,这个如何来确定问题的根源呢

可以使用一个 jvm 参数

-Dlog4j.debug=true
这样,加载配置的全部流程都会输出。
log4j: Trying to find [log4j.xml] using context classloader sun.misc.Launcher$AppClassLoader@e9f784d.
log4j: Trying to find [log4j.xml] using sun.misc.Launcher$AppClassLoader@e9f784d class loader.
log4j: Trying to find [log4j.xml] using ClassLoader.getSystemResource().
log4j: Trying to find [log4j.properties] using context classloader sun.misc.Launcher$AppClassLoader@e9f784d.
log4j: Using URL [file:/application/hadoop-2.3.0-cdh5.0.0/etc/hadoop/log4j.properties] for automatic log4j configuration.
log4j: Reading configuration from URL file:/application/hadoop-2.3.0-cdh5.0.0/etc/hadoop/log4j.properties
log4j: Hierarchy threshold set to [ALL].
log4j: Parsing for [root] with value=[INFO,console, EventCounter].
log4j: Level token is [INFO].
log4j: Category root set to INFO
log4j: Parsing appender named "console".
log4j: Parsing layout options for "console".
log4j: Setting property [conversionPattern] to [%d{yy/MM/dd HH:mm:ss} %p %c{2}: %m%n].
log4j: End of parsing for "console".
log4j: Setting property [target] to [System.err].
log4j: Parsed "console" options.
log4j: Parsing appender named "EventCounter".
log4j: Parsed "EventCounter" options.
log4j: Parsing for [org.apache.hadoop.mapred.JobInProgress$JobSummary] with value=[INFO,console].
log4j: Level token is [INFO].
log4j: Category org.apache.hadoop.mapred.JobInProgress$JobSummary set to INFO
log4j: Parsing appender named "console".
log4j: Appender "console" was already parsed.
log4j: Handling log4j.additivity.org.apache.hadoop.mapred.JobInProgress$JobSummary=[false]
log4j: Setting additivity for "org.apache.hadoop.mapred.JobInProgress$JobSummary" to false
log4j: Parsing for [org.jets3t.service.impl.rest.httpclient.RestS3Service] with value=[ERROR].
log4j: Level token is [ERROR].
log4j: Category org.jets3t.service.impl.rest.httpclient.RestS3Service set to ERROR
log4j: Handling log4j.additivity.org.jets3t.service.impl.rest.httpclient.RestS3Service=[null]
log4j: Parsing for [SecurityLogger] with value=[INFO,NullAppender].
log4j: Level token is [INFO].
log4j: Category SecurityLogger set to INFO
log4j: Parsing appender named "NullAppender".
log4j: Parsed "NullAppender" options.
log4j: Handling log4j.additivity.SecurityLogger=[null]
log4j: Parsing for [org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary] with value=[INFO,console].
log4j: Level token is [INFO].
log4j: Category org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary set to INFO
log4j: Parsing appender named "console".
log4j: Appender "console" was already parsed.
log4j: Handling log4j.additivity.org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary=[false]
log4j: Setting additivity for "org.apache.hadoop.yarn.server.resourcemanager.RMAppManager$ApplicationSummary" to false
log4j: Parsing for [org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit] with value=[INFO,NullAppender].
log4j: Level token is [INFO].
log4j: Category org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit set to INFO
log4j: Parsing appender named "NullAppender".
log4j: Appender "NullAppender" was already parsed.
log4j: Handling log4j.additivity.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=[false]
log4j: Setting additivity for "org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit" to false
log4j: Parsing for [org.apache.hadoop.mapred.AuditLogger] with value=[INFO,NullAppender].
log4j: Level token is [INFO].
log4j: Category org.apache.hadoop.mapred.AuditLogger set to INFO
log4j: Parsing appender named "NullAppender".
log4j: Appender "NullAppender" was already parsed.
log4j: Handling log4j.additivity.org.apache.hadoop.mapred.AuditLogger=[false]
log4j: Setting additivity for "org.apache.hadoop.mapred.AuditLogger" to false
log4j: Finished configuring.
如果哪里不对,从这里就能看出来了。不过这个只能通过标准输出查看。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值