我见过类似的问题,但没有一个解决方案对我有效。我的Sping Boot 应用程序log4j 2配置如下:
日志4j2.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<Configuration
xmlns="http://logging.apache.org/log4j/2.0/config">
<Properties>
<Property name="LOG_PATTERN">%d{dd/MM/yyyy HH:mm:ss.SSS} %-5p [%t][%c{1}] %m%n</Property>
<Property name="APP_LOG_ROOT">D:/dev/logs</Property>
</Properties>
<Appenders>
<!-- Console Appender -->
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="MyFileAppender"
fileName="${APP_LOG_ROOT}/application.log"
filePattern="${APP_LOG_ROOT}/application-%d{yyyy-MM-dd}-%i.log">
<PatternLayout pattern="${LOG_PATTERN}" />
<Policies>
<SizeBasedTriggeringPolicy size="1000KB" />
</Policies>
<DefaultRolloverStrategy max="1" />
</RollingFile>
</Appenders>
<Loggers>
<Logger name="FileLogger" additivity="false">
<Level value="INFO" />
<AppenderRef ref="MyFileAppender" />
<AppenderRef ref="STDOUT" />
</Logger>
<Root level="INFO">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
应用程序.yaml:
logging:
config: src/main/resources/log4j2.xml
日志正在写入控制台,并且在D:/dev/log
目录下创建了application.log
文件,但该文件始终为空。我找不到任何解决此问题的方法,有什么建议吗?
- 谢谢-谢谢
1条答案
按热度按时间cbeh67ev1#
我终于找到解决办法了。
首先,我曾经在我的java类中创建Logger示例,如下所示:
但我在配置文件中将文件记录器命名为FileLogger。
所以,要么我不得不在我的java类中做以下事情:
或者,另一种方法(我更喜欢)是添加文件附加器到根日志记录器。下面是我的配置文件的最终版本: