Log4j2: одно универсальное Параметризованное приложение [тип: RollingFile] для нескольких регистраторов

Голубчики,
У меня есть вопрос пожалуйста, у меня есть много услуг, пишущих в разных файлах журнала с тем же уровнем журнала.
То, что я получил из интернета, мне нужно создать приложения и регистраторы на основе количества услуг.
Теперь мой вопрос заключается в том, Могу ли я сделать один универсальный parmeterized appender для использования для нескольких лесозаготовителей? Мне нужны параметры в приложении, чтобы указать имя файла журнала и его путь.
Приведенный ниже фрагмент xml для определения приложения:

<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>

Спасибо заранее.

1 ответ

  1. Да, вы можете использовать RoutingAppender для входа в несколько файлов журнала, даже динамически создавать файлы журнала на лету. Часто люди используют контекстную карту в качестве правила маршрутизации.

    Примеры см. На странице руководства и на странице часто задаваемых вопросов Log4j2 .