当前位置: 首页 > 知识库问答 >
问题:

如何在log4j2中动态设置日志文件路径。xml

东方旺
2023-03-14

我已经在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>

共有3个答案

东郭存
2023-03-14

默认情况下,springboot正在查找logback。xml(或logback spring.xml)到您的项目资源文件夹中。如果要使用动态生成的设置,可以将属性重写到应用程序中。属性filelogging。config=/some/path/logging设置。xml

所有日志记录* 属性是LoggingApplicationListener的一部分

宗乐池
2023-03-14

abc.properties

log4j2FilePath=logs/log4j2演示。日志

<Properties>
    <Property name="log-path">${bundle:abc:log4j2FilePath}</Property>
</Properties>
梁学真
2023-03-14

默认情况下,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的任何公开服务需要重新配置。