log4j2 xml 无法识别程序参数
log4j2 xml does not recognize program arguments
我有一个 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 无法识别程序参数。
知道如何解决这个问题吗?
您可以使用 ${server.port}
而不是 ${sys:server.port:-noPort}
我有一个 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 无法识别程序参数。 知道如何解决这个问题吗?
您可以使用 ${server.port}
而不是 ${sys:server.port:-noPort}