【问题标题】:Where on the client to place the log4j.properties file?客户端在哪里放置 log4j.properties 文件?
【发布时间】:2019-04-30 13:49:57
【问题描述】:

Java 应用程序使用 Apache 日志记录,但我无法打开它。

该应用程序是一个使用签名 Jar 文件的 Java Web Start 应用程序,因此我无法对 Jar 文件或代码进行任何更改。

创建了一个包含以下内容的 log4j.properties 文件,并将其放置在我机器上的所有 Java_Home/bin 目录中,以确保它会被拾取。

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.File=c:/MyLoggingDir/application6.log
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %m%n
log4j.appender.rollingFile.MaxFileSize=10MB
log4j.appender.rollingFile.MaxBackupIndex=5
log4j.appender.rollingFile.append=true

log4j.rootCategory=ALL, rollingFile

当应用程序启动时,Java 控制台中看不到任何输出,并且在 c:/MyLoggingDir 目录中没有创建任何文件。

是否还缺少其他需要设置才能获得输出的要求?

【问题讨论】:

  • 谷歌快速搜索“log4j.properties 位置”的第二个答案:crunchify.com/… - 简而言之:该文件属于您的类路径,例如您的 src 文件夹、资源文件夹或类似文件夹,具体取决于您构建应用程序的方式。

标签: java apache logging


【解决方案1】:

来自documentation of log4j

Log4j 将检查“log4j.configurationFile”系统属性,并且, 如果设置,将尝试使用 与文件扩展名匹配的 ConfigurationFactory。

因此,例如,如果您将属性文件放在C:\Configuration\log4j.properties 中,您应该使用标志-Dlog4j.configuration="file:C:\Configuration\log4j.properties" 运行您的应用程序

另见this other answer

【讨论】:

  • 我试图在 javaws 的属性文件中添加这一行,但它不允许使用冒号或引号。检查 Java 控制面板,它可以在那里添加,但它只影响 java,而不影响 javaws。如何为 javaws 程序添加它。请记住,我没有源访问权限,只能作为最终用户访问。
  • 使用 javaws -J--Dlog4j.configuration="file:C:\Configuration\log4j.properties" -localfile ....... 运行应用程序但仍然没有输出文件,这让我现在想知道我最初问题中的条目是否配置错误以写入文件。
  • 尝试运行带有-Dlog4j.debug的应用程序,在启动时显示一些关于log4j配置的调试信息,它可以给你有用的提示。
猜你喜欢
  • 1970-01-01
  • 2013-03-09
  • 2010-12-01
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多