我在将应用程序部署到正在运行JRE 1.7的其他计算机时崩溃的应用程序遇到问题。当我在我的PC上运行NetBeans内部(甚至直接从JAR文件)时,一切都很好。但在另一台计算机上,它在执行期间的特定事件(按钮点击)时失败。Log4j - 无法找到日志文件
所以,我了解了使用log4j库进行日志记录的情况。这给了我一些关于我的应用程序中的问题的信息,并且记录工作完美,再次在我的电脑上。但是,当我将JAR文件部署到仅运行JRE(Java 7 Update 17)的其他计算机时,我无法找到任何日志文件的跟踪。
这里是我的log4j.properties文件:
# Root logger option
log4j.rootLogger=INFO, file, stdout
# Direct log messages to a log file log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=C:\logging.log
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
# Direct log messages to stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}
%-5p %c{1}:%L - %m%n
在我的电脑,我可以看到logging.log文件直接在项目文件夹中。就此而言,一切都很完美。但是,在用户PC上,根本没有该文件的标志。不在C:\(我认为它会),而不是在C:\ Program Files文件(x86)\或任何其他地方。我已经完成了我的硬盘的完整搜索,但没有回来。
这个文件应该存储在哪里?我的属性设置是否正确?非常困惑...
谢谢!
目标机器上的用户能否在c盘的根目录下创建文件? – DwB 2013-03-25 18:08:09
首先,属性文件中的反斜杠需要加倍:'C:\\ logging.log'。或者使用正斜杠,因为windows会接受它们:'C:\ logging.log' – Kenster 2013-03-25 18:11:21
DwB - 是的,它们拥有c:\的全部权限。我不相信这是一个权限问题。 – Alex 2013-03-25 19:03:03