0

日志4j:

# Root logger option
log4j.rootLogger=ERROR, file

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${fileName}
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=1
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{YYYY-MM-DD HH:mm:ss} %-5p %c{1}:%L - %m%n

当我运行我的应用程序时,我的主要方法中有这个:PropertyConfigurator.configure("log4j.properties");

问题:

  1. 我将 log4j.properties 文件保存在项目的根目录中,并尝试将我的项目导出为可运行的 jar,当我提取它的内容或再次重新导入它时,我实际上没有在其中看到 log4j.properties。要将log4j与jar捆绑在一起应该怎么做?

  2. 我将 log4j 文件放在 src 文件夹下。但是当我运行我的应用程序时,我得到了以下异常。即使在移动 log4j 文件时,为了使 log4j 也能正常工作,应该进行哪些更改?

这是我得到的例外:

log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: 
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at java.io.FileOutputStream.<init>(Unknown Source)
    at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
    at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194)
    at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)
4

1 回答 1

0

log4j.properties 理想情况下不应该是 jar 文件本身的一部分。提供一个是客户(或 API 的用户)的责任。

要回答问题的第二部分,请尝试将 ${filename} 替换为 C:\mylogs.log 之类的路径

于 2013-10-28T11:09:59.320 回答