【发布时间】:2015-07-23 08:39:55
【问题描述】:
我已经开始使用 spring boot 和 gradle 并且我正在尝试使用 log4j2 进行日志记录。 我首先编译和构建:
gradlew clean build
然后执行jar:
java -jar build/libs/java-apns-notifier-0.1.0.jar
执行 jar 后,我可以在控制台中看到日志,但在 log4j2.xml(D:/temp/logs/apns.log) 中提到的文件中看不到。在该文件中,我只能看到来自 springframework 的日志,但看不到来自我的代码的日志。
问题是如何让这个简单的场景发挥作用?
我想看看我的日志也出现在日志文件中。
这里是源代码:Java Apple Push Notification Service Notifier
重要!
我最近注意到出现了日志。但只有在我终止进程之后。
所以在这里澄清一下是怎么回事:
- 运行 jar:
java -jar build/libs/java-apns-notifier-0.1.0.jar
-> 日志文件中没有出现任何内容
- 在命令行中终止进程。
-> 日志出现在日志文件中
【问题讨论】:
-
您是否检查过您的 log4j 配置是否已正确添加到 JAR 中?例如,您是否已解压缩 JAR 并确保所有内容都在应有的位置?
-
是的。 i.imgur.com/fHv4PpH.png i.imgur.com/24ECSY0.png Config 是关于 log4j2 写入日志文件 D:/temp/logs/apns.log 的事实问题是只有 springframework 日志被写入,而我的应用程序没有。
-
您的配置在未打包在 JAR 中时是否正常工作?比如你在 IDE 中启动应用程序的时候?
-
从 ide 启动时相同。我的代码中的日志文件中没有条目。
-
很可能,log4j2 没有找到您的配置文件,因为它位于资源包中,而不是在类路径的根目录中。尝试传入 jvm 参数 '-Dlog4j.configurationFile="path to file" ' 如果可行,您只需要设置属性或移动配置文件。
标签: gradle spring-boot log4j2