java - 为什么在尝试使用 log4j 写入文件时会出现此 FileNotFoundException?

标签 java logging log4j filenotfoundexception

我完全是 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 文件相关的错误消息是拒绝访问(意大利语 Accesso negato):

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 文件处于同一级别。

为什么?我错过了什么?我该如何解决这个问题?

谢谢

最佳答案

我认为 $log 是空的,它试图在 root 上创建一个文件,而您正在以普通用户身份运行程序。 给它支票。

关于java - 为什么在尝试使用 log4j 写入文件时会出现此 FileNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28858869/

相关文章:

grails - 记录/Log4J到数据库

java - 如何将对象传递给 Thymeleaf 中的模态对话框?

logging - Nginx 理解访问日志栏

logging - 是否可以在运行时更改 AWS Lambda 的日志级别?

java - log4j linux 问题 - 日志文件为空

java - 同一类的不同实例的单独日志文件

java - Log4j 多个 appender 独立

java - 我应该使用 POJO 还是 JSONObject 进行 REST 调用

java - Maven项目: Failed to read artifact descriptor

JavaIPC : GUI and Command Line