返回

java-读取 log4j2.xml 中的 system.properties 变量时出错

发布时间:2022-08-03 01:52:43 212
# php

我的 log4j2.xml 看起来像 -

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

    <Appenders>

        <Console name="LogToConsole" target="SYSTEM_OUT">

            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

        </Console>

        <RollingFile name="RollingFile" fileName="logs/${sys:logfilename}.log" filePattern="logs/${sys:logfilename}.log">

            <Policies>

                <OnStartupTriggeringPolicy/>

            </Policies>

            <DefaultRolloverStrategy fileIndex="max" max="10"/>

            <PatternLayout pattern="[%d{dd/MMM/yyyy HH:mm:ss.SSS}]> %-5p - %m%n"/>

        </RollingFile>

        <Async name="ASYNC">

            <AppenderRef ref="RollingFile"/>

        </Async>

    </Appenders>

    <Loggers>

        <root level="debug">

            <appender-ref ref="LogToConsole" level="info"/>

            <appender-ref ref="RollingFile" level="debug"/>

        </root>

    </Loggers>

</Configuration>

我正在设置 system.properties 变量,例如-

public static void main(String[] args) throws IOException {

---some code

System.setProperty("logfilename", "a_cool_logname");

---somecode

}

但是当我使用这个设置运行时,我会收到类似的错误 -

错误无法创建文件日志/${sys:logfilename}.log java.io.IOException: 文件名、目录名或卷标语法不正确

我还尝试了 RollingFile name="RollingFile" fileName="${main:-logfilename}.log" filePattern="${main:-logfilename}.log"> 在这种情况下,生成的日志文件名称为 logfilename.log 。它不替换 main 方法中设置的值。

任何想法,我在哪里犯了错误?

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像