フォローアップして解決策を投稿してくれてありがとうhveiga。役に立ちました。http://logging.apache.org/log4j/2.x/faq . html#separate_log_files
したがって、更新された log4j 構成は次のようになります。
<appenders>
<appender name="applicationAppender" type="RollingFile" fileName="${logFileName}" filePattern="${logFileNamePattern}" bufferedIO="true" immediateFlush="true" append="true">
<layout type="PatternLayout" pattern="${logPattern}" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="${logFileSize}" />
</Policies>
<DefaultRolloverStrategy max="${logFileCount}" />
</appender>
<Routing name="contextSpecificAppender">
<Routes pattern="$${ctx:contextId}">
<Route>
<appender name="Rolling-${ctx:contextId}" type="RollingFile" fileName="logs/${ctx:contextId}.log" filePattern="${logFileNamePattern}" bufferedIO="true" immediateFlush="true" append="true">
<layout type="PatternLayout" pattern="${logPattern}" />
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="${logFileSize}" />
</Policies>
<DefaultRolloverStrategy max="${logFileCount}" />
</appender>
</Route>
<Route ref="applicationAppender" key="$${ctx:contextId}">
</Route>
</Routes>
</Routing>
</appenders>
<loggers>
<root level="info">
<appender-ref ref="contextSpecificAppender"/>
</root>
</loggers>
また、アプリケーションでは、ThreadContext.put("contextId", "something") を呼び出して ThreadContext を設定し、完了したら ThreadContext.clear() OR ThreadContext.remove("contextId") を呼び出してクリアできます。
最後に、私は
<RollingFile>
要素(上記の例のように)の代わりに
<appender type="RollingFile">
使用した要素。これは、log4j から log4j2 に移行する場合に適していると思います。