我已经在spring boot中使用log4j2完成了日志记录。我想从属性文件动态设置日志文件路径。我已经为此编写了下面的代码,但它工作得不好。
我的财产档案。属性代码如下所示
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>
默认情况下,springboot
正在查找logback。xml
(或logback spring.xml
)到您的项目资源文件夹中。如果要使用动态生成的设置,可以将属性重写到应用程序中。属性
filelogging。config=/some/path/logging设置。xml
所有日志记录*
属性是LoggingApplicationListener的一部分
abc.properties
log4j2FilePath=logs/log4j2演示。日志
<Properties>
<Property name="log-path">${bundle:abc:log4j2FilePath}</Property>
</Properties>
默认情况下,log4j2在log4j2中查找声明的动态属性。属性文件
如果您希望使用其他属性文件,请使用abc。属性,我建议使用代理变量我的意思是,您可以在log4j2中创建一个变量。属性,该属性实际从abc获取值。财产<<4br>您可以访问logj2中的变量。像这样的财产,,
property.fileName=${bundle:abc:log.path}
我想在Log4j2中设置一个目录。xml动态。 Log4j2。xml 运行: 输出: 2017-03-15 18:20:27131主要错误 无法创建文件${sys:logDirectory}/app。记录java。伊奥。IOException: 文件名、目录名或驱动器名的语法错误 ---编辑:德语中的原始错误消息是:-- (Dateinamen,Verzeichnisnamen或Datenträg
问题内容: 文件名根据月份而变化。每个月都有一个新文件。 如何设置将与可变文件路径一起使用的连接管理器? 问题答案: 您需要为 或 属性设置表达式,以 使用SSIS包变量动态修改Excel连接管理器。
问题内容: 我当前正在创建一个可以包含模块的系统(将它们视为插件),其中每个模块可以拥有自己的专用日志。 我想使用log4j2项目进行日志记录,但是文件附加器似乎有些麻烦。 主项目(整个模块的模块加载器和“核心”)应具有自己的日志文件,而模块应具有自己的日志文件(如)。 通过阅读有关追加程序的文档,我发现了该类,并且我将使用它。直到我发现不能简单地将追加器添加到由创建的默认记录器中。 LogMan
我目前正在创建一个系统,可以有模块(把它们看作插件),其中每一个都可以有自己的日志,专用的。 我想使用log4j2项目进行日志记录,但我似乎在文件附加符方面遇到了一些麻烦。 主项目(模块加载器和整个事情的“核心”)应该有自己的日志文件,而模块应该有自己的日志文件(像)。 即使搜索也没有给我提供任何接近的解决方案,我找到的只是xml配置中预定义的文件日志--这不是我想要的。 感谢你的阅读;即使是最轻
在log4j中,我可以这样指定文件: 但是在log4j2中,我不知道如何在一个句子中重写
嗨,我在log4j2上使用slf4j。如何动态更改日志路径? 我的log4j2.xml看起来像 有什么方法可以更改运行时写入日志的路径吗? 我尝试在路径中拥有系统属性并在运行时设置它,但Log4J2不考虑更新的值。系统属性方法- 这是否需要重新配置。我没有看到slf4j的任何公开服务需要重新配置。