我目前正在开发一个Spring-boot批处理应用程序,该应用程序可以检测并读取新文件。一切工作正常,但日志文件名有问题。 关键是,必须在批处理运行时动态创建每个日志的文件名(每个文件一个),而且我不知道如何在Logback中动态更改日志的文件名。
这是我目前的登录信息($ {TECH}是我要更改的内容):
<configuration debug="false" scan="true" scanPeriod="30 seconds">
<springProperty scope="context" name="directory.log.tech" source="bpa.batch.directory.log.technique"/>
<appender name="TECHNIQUE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>DENY</onMatch>
<onMismatch>ACCEPT</onMismatch>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${directory.log.tech}\%d{yyyyMMdd}.${TECH}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%msg%n</pattern>
</encoder>
</appender>
<logger name="fr.hm.bpa.log.LogTechnique" level="TRACE">
<appender-ref ref="TECHNIQUE" />
</logger>
</configuration>
有人可以解释在我的代码运行时如何进行更改吗?预先感谢。
答案 0 :(得分:0)
您可能想看一看内置在logback中的Sifting File Appender。
从文档中:
顾名思义,SiftingAppender可用于分隔(或 sift)根据给定的运行时属性进行日志记录。例如, SiftingAppender可以根据用户分开记录事件 会话,以便由不同用户生成的日志进入 不同的日志文件,每个用户一个日志文件。