我使用spring-boot,log4j2和tomcat遇到了问题。
我有一个log4j2 xml配置文件用于记录,有2个appender,一个控制台和一个文件追加器。
问题是每当我使用Application类的main方法运行应用程序时,一切正常,但是当我构建应用程序的war文件并将其部署到独立的tomcat时,文件appender不起作用。
实际上会发生的事情是控制台appender正常工作[日志在控制台中打印]并且创建了log4j2配置文件中指定的文件,但它仍然是空的。
这是log4j2配置文件:
<Properties>
<Property name="LOG_PATTERN">
%d{yyyy-MM-dd HH:mm:ss} %5p ${hostName} --- [%15.15t] %-40.40c{1.} %L : %m%n%ex
</Property>
<Property name="LOG_PATH">
<!-- <absolute_path_to_log_file_directory> -->
</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<RollingFile name="FileAppender"
fileName="${LOG_PATH}/mylogfile.log"
filePattern="${LOG_PATH}/mylogfile-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="my.package.name" level="debug" additivity="false">
<AppenderRef ref="FileAppender" />
<AppenderRef ref="ConsoleAppender" />
</Logger>
<Root level="info">
<AppenderRef ref="ConsoleAppender" />
<AppenderRef ref="FileAppender" />
</Root>
</Loggers>
对此事的任何帮助表示赞赏。
答案 0 :(得分:-2)
您可以将以下内容添加到您的tomcat启动中,并添加到catalina opts
-Dlogging.config=<<external-folder>>\log4j2.xml