如何在log4j2.xml中动态设置日志文件路径
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在log4j2.xml中动态设置日志文件路径相关的知识,希望对你有一定的参考价值。
我在spring-boot中使用log4j2进行了日志记录。我想从属性文件中动态设置日志文件路径。我已经为此写了下面的代码,但它没有正常工作。
我的属性文件abc.properties代码如下
log4j2FilePath = logs/log4j2-demo.log
我的日志文件log4j2.xml代码如下
<Property name="log-path">config.properties.log4j2FilePath</Property>
<RollingFile name="FileAppender" fileName="${log-path}"
filePattern="logs/log4j2-demo-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="1" />
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
答案
默认情况下,log4j2在log4j2.properties文件中查找声明的动态属性。 如果你想使用其他一些属性文件,让我们说abc.properties,我建议使用代理变量。 我的意思是,你可以在log4j2.properties中创建一个实际从abc.properties获取值的变量。 所以你可以像这样访问log4j2.properties中的varaibale,
property.fileName=${bundle:abc:log.path}
另一答案
ABC.properties
log4j2FilePath =日志/ log4j2-demo.log
<Properties>
<Property name="log-path">${bundle:abc:log4j2FilePath}</Property>
</Properties>
另一答案
默认情况下,spring-boot
正在寻找logback.xml
(或logback-spring.xml
)到您的项目资源文件夹中。如果要使用动态生成的设置,可以将属性覆盖到application.properties
文件中logging.config=/some/path/logging-settings.xml
所有logging.*
属性都是LoggingApplicationListener的一部分
以上是关于如何在log4j2.xml中动态设置日志文件路径的主要内容,如果未能解决你的问题,请参考以下文章