log4j.properties 应该是啥样子?

Posted

技术标签:

【中文标题】log4j.properties 应该是啥样子?【英文标题】:How should log4j.properties look like?log4j.properties 应该是什么样子? 【发布时间】:2012-08-03 11:49:04 【问题描述】:

经过讨论here我仍然无法配置我的程序/电锯

当我启动 ChainSaw 时,我会选择

让我在端口 4445 上使用一个简单的接收器

在我的程序中我设置了配置:

PropertyConfigurator.configure("log4j.properties");

最后运行程序,点击Chainsaw中的Simple Receiver

log4j.properties 版本 1

log4j.rootLogger=DEBUG, server

log4j.appender.server=org.apache.log4j.net.SocketAppender
log4j.appender.server.Port=4445
log4j.appender.server.RemoteHost=localhost
log4j.appender.server.ReconnectionDelay=10000

log4j.properties 版本 2

log4j.rootCategory=DEBUG, zeroconf, chainsaw
# Socket Appender
log4j.appender.chainsaw=org.apache.log4j.net.SocketAppender
log4j.appender.chainsaw.remoteHost=localhost
log4j.appender.chainsaw.port=4445
log4j.appender.chainsaw.locationInfo=true

它们都不起作用。我该怎么办?

【问题讨论】:

【参考方案1】:

尝试:

log4j.threshold=ALL
log4j.debug = true
log4j.rootLogger=DEBUG, chainsaw
# Socket Appender
log4j.appender.chainsaw=org.apache.log4j.net.SocketAppender
log4j.appender.chainsaw.RemoteHost=localhost
log4j.appender.chainsaw.Port=4445
log4j.appender.chainsaw.LocationInfo=true

这是一个很好的电锯配置示例,也是必需的:

http://magnus-k-karlsson.blogspot.com/2010/02/viewingmonitoring-your-log4j-generated.html

【讨论】:

不幸的是我得到了log4j:ERROR Could not find value for key log4j.appender.zeroconf log4j:ERROR Could not instantiate appender named "zeroconf". 拿出来。未配置。 log4j 调试告诉你什么? 我不知道如何检查它。但是,如果我打开了 ChainSaw,应该会出现一个新选项卡吗?我没有这样的东西。也许原因是Socket Receiver is inactive? 你有没有为 Log4J 摄取配置电锯。【参考方案2】:

从 2.4 版开始,Log4j 现在支持通过属性文件进行配置。请注意,属性语法与 Log4j 1 中使用的语法不同。

appender.server.type=Socket
appender.server.name=server
appender.server.port=4445
appender.server.host=localhost
appender.server.reconnectDelayMillis=10000

...

rootLogger.appenderRef.server.ref = server

reconnectionDelayMillis 可能有问题。在logging-log4j-dev mailing list archives 我发现:

文档 (https://logging.apache.org/log4j/2.x/manual/appenders.html#SyslogAppender) 仍然将参数列为“reconnectionDelayMillis”,但 代码现在显然正在寻找“reconnectDelayMillis”。我要去 更改我的配置以使用新名称,但我想我会指出 断开连接,因为它让我有点困惑。谢谢 - 山姆

这可能已经修复/统一,但我还没有在较新版本的 log4j 中检查。如果您遇到任何问题,请尝试使用reconnectDelayMillis

更详细的例子可以在Configuration with Properties找到。

【讨论】:

以上是关于log4j.properties 应该是啥样子?的主要内容,如果未能解决你的问题,请参考以下文章

jsp中log4j.properties是啥文件?

log4j.properties 文件中 log4j.rootLogger 属性的意义是啥?如果我不使用此属性会怎样?

tomcat启动后,总是输出这些日志,想了解一下是啥意思

spring log4j.properties 没有日志的问题

log4j.properties加入内容

如何读取jar包外的properties文件和log4j.properties