我有一个使用 YAML 格式(即application.yml)进行配置的Spring Boot应用程序。我还使用 Log4J2 (即log4j2-spring.xml)进行记录。
我正在尝试使用application.yml中定义的属性作为log4j配置中的属性替换。
这是我的意思:
application.yml:
service:
name: RouteAssessor
id: 1
log4j2-spring.xml:
<Properties>
<Property name="serviceName">${sys:service.name}</Property>
<Property name="serviceId">${sys:service.id}</Property>
<Property name="logFile">logs/${serviceName}-${serviceId}</Property>
<Property name="statsFile">metrics/${serviceName}-${serviceId}_stats.json</Property>
</Properties>
<Appenders>
<Console name="ConsoleAppender" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<RollingFile name="RollingFile" fileName="${logFile}.current-session.log"
filePattern="${logFile}.%i.log.gz" ignoreExceptions="false">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="10" />
</RollingFile>
<File name="StatsFile" fileName="${statsFile}" append="false">
<PatternLayout>
<Pattern>${STATS_PATTERN}</Pattern>
</PatternLayout>
</File>
</Appenders>
我尝试过的所有操作都不会以我需要的方式命名日志文件。它们总是以类似${sys:service.name}-${sys:service.id}.current-session.log
的名字结尾。
谢谢