Dears, У меня есть вопрос, у меня есть много сервисов, записывающих в разные файлы журналов с одинаковым уровнем журнала. Что я получил из Интернета, мне нужно создавать приложения и регистраторы на основе количества сервисов. Теперь, мой вопрос: могу ли я сделать один общий парметеризированный appender для использования для нескольких регистраторов? Мне нужны параметры в приложении, чтобы указать имя файла журнала и его путь. Приведенные ниже XML фрагмент кода для определения Appender:Log4j2: Один общий параметризированный Appender [Тип: RollingFile] для нескольких регистраторов
<Appenders>
<RollingFile name="RollingFile-Appender"
fileName="${log-path}/{This one based on service}.log"
filePattern="${log-path}/{This one based on service}/{This one based on service}_%d{yyyy-MM-dd}.log">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="${fileSize}" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${log-path}/{This one based on service}" maxDepth="1">
<IfFileName glob="{This one based on service}*.log">
<IfAny>
<IfAccumulatedFileSize exceeds="500 MB" />
<IfAccumulatedFileCount exceeds="3" />
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
Спасибо заранее.
У меня есть сомнения, является ли поток ThreadContext безопасным для одновременного доступа? Позвольте мне рассказать вам, что я делаю, у меня есть WebSphere Portal, и у него много портлетов, теперь эти портлеты используют модуль протоколирования, если один из портлетов изменяет ключ [предположим, «имя_файла_файла»], он будет отражен другими, я прав? –
Да. ThreadContext - это, по существу, локально-потоковая карта. Вот для чего это ... –