【问题标题】:log4j2 xml does not recognize program argumentslog4j2 xml 无法识别程序参数
【发布时间】:2020-11-24 14:14:09
【问题描述】:

我有一个 java spring 应用程序,我想将我的程序参数之一传递给 log4j2.xml 文件

我用那个命令启动它:

nohup java -DremoteMapIp=120.0.1 -Dserver.port=9013 -Dspring.profiles.active=tt-test -jar ttsis-rows.jar

在我的 tt-test.yaml 文件中,我将日志记录配置为:

logging:
  config: classpath:fileAppender.xml

还有我的 fileAppender.xml 文件

<configuration>
    <appender name="FILE"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level - %msg%n</pattern>
        </encoder>
        <file>logs/ttsis-rows-${sys:server.port:-noPort}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <cleanHistoryOnStart>false</cleanHistoryOnStart>
            <fileNamePattern>ttsis-rows-${sys:server.port:-noPort}.log.%d{yyyy-MM-dd}.%i.gz</fileNamePattern>
            <maxFileSize>20MB</maxFileSize>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>

    <root level="INFO">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

我的问题是我的日志文件始终创建为“ttsis-rows-noPort.log”(由 fileAppender.xml 中的文件标记配置)并且 log4j 无法识别程序参数。 知道如何解决这个问题吗?

【问题讨论】:

    标签: java spring logging log4j2


    【解决方案1】:

    您可以使用${server.port} 代替${sys:server.port:-noPort}

    【讨论】:

    • 你是个巫师 :D ,非常感谢你!
    猜你喜欢
    • 2020-07-28
    • 1970-01-01
    • 2019-07-14
    • 2013-08-09
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 2021-09-28
    相关资源
    最近更新 更多