我是一个完全没有使用过 log4j 的新手,我遇到了以下问题。
我想将日志输出到名为 log.out 的文件中。
因此,我创建了以下 log4j.properties 配置文件:
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
问题在于,当我执行我的应用程序并且它发生了日志记录操作时,会出现以下类似的情况:
logger.debug("INTO main()");
我在控制台中发现以下异常(与log.out文件相关的错误信息为access denied(意为访问被拒绝)):
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: \log.out (Accesso negato)
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:289)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:163)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:2
56)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.j
ava:132)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.j
ava:96)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigura
tor.java:654)
不要向我手动创建的log.out文件中写入任何内容。这个log.out文件与我的应用程序执行的jar文件处于同一级别。
为什么?我错过了什么?如何解决这个问题?
谢谢。