logbackへの切り替えがオプションの場合、必要なのは組み込みのMDCとsifting appendersだけです。最初に、この try-finally 句をすべてのジョブに追加します (繰り返しを避けるために、ジョブ リスナーを使用できます)。
public void execute(JobExecutionContext context) {
MDC.put("jobId", "job1");
try {
//do all the work here
} finally {
MDC.remove("jobId");
}
}
try
すべてのコードをの前後ではなく、の中に入れることが重要です。あなたの仕事が準備されたら、これを入れてくださいlogback.xml
:
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>jobId</key>
<defaultValue>unknown</defaultValue>
</discriminator>
<sift>
<appender name="FILE-${jobId}" class="ch.qos.logback.core.FileAppender">
<file>logfile-${jobId}.log</file>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d [%thread] %level %mdc %logger{35} - %msg%n</pattern>
</layout>
</appender>
</sift>
</appender>
それは「うまくいく」でしょう。