Spring 使用 gradle 启动并且 log4j2 不记录到文件

Spring boot with gradle and log4j2 not logs to file

我已经开始使用 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) 中提到的文件中看不到。在该文件中,我只能看到来自 spring 框架的日志,但看不到来自我的代码的日志。
问题是如何让这个简单的场景发挥作用?
我想看到我的日志也出现在日志文件中。

这里是源代码:Java Apple Push Notification Service Notifier

重要!
我最近注意到日志出现了。但只有在我终止进程之后。 所以在这里澄清是怎么回事:

  1. 运行 罐子:

java -jar build/libs/java-apns-notifier-0.1.0.jar

-> 日志文件中没有任何内容

  1. 在命令行中终止进程。
    -> 日志出现在日志文件中

日志需要一些时间才能出现在您的日志文件中,因为您正在使用

immediateFlush="false"

如果将其切换为 true,您会立即看到日志,但这可能会影响应用程序的性能。

默认情况下,bufferedIOtrue 并且 bufferSize8192字节。这意味着日志只有在缓冲区有 8192 个字符后才会写入磁盘。

详情请参考https://logging.apache.org/log4j/2.x/manual/appenders.html