java - 客户端在哪里放置 log4j.properties 文件?
问题描述
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 将检查“log4j.configurationFile”系统属性,如果设置,将尝试使用与文件扩展名匹配的 ConfigurationFactory 加载配置。
因此,例如,如果您将属性文件放入 中C:\Configuration\log4j.properties
,您应该使用标志运行您的应用程序-Dlog4j.configuration="file:C:\Configuration\log4j.properties"
另请参阅this other answer。
推荐阅读
- python - 使用 Pandas 在 DB 表中更新的更好方法
- dart - 如何解决飞镖错误 - 发生异常。_TypeError(类型'列表
' 不是类型 'String' 的子类型) - postgresql - 如果不存在则创建一个类型 Postgresql
- node.js - 返回由 mongoDb 上的特定字段找到的重复文档的 _id 对
- symfony - 如何使用环境变量来设置一些参数而不是parameters.yml?
- python - 无法使用变量作为位置在 Openpyxl 中检索单元格数据
- botframework - 机器人的语音服务在 Azure 中的“Web 聊天测试”选项中不起作用
- json - 州区json绑定反应
- c++ - #include 已包含在包含的头文件中的头文件是否常见?
- php - 合并来自多个 txt 文件的随机字符串并回显