Журналы объединяются, когда два logback. xml работает на сервере Websphere - PullRequest
0 голосов
/ 12 апреля 2020

Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть приложение, использующее файл jar (jar1), содержащий logback. xml (имеющий папку назначения для файлов журналов), а другое приложение также использует файл jar (jar2) содержащий другой журнал. xml (имеющий другую папку назначения для своих файлов журнала). Для первого приложения я использую загрузчик классов с конфигурацией общего файла jar1. Теперь в этом случае журналы объединяются. Некоторые журналы создаются в первой папке назначения для второго приложения и наоборот. Я использую WebSphere9. Есть ли способ, чтобы файлы журналов создавались в указанной папке назначения c, без объединения журналов?

Сохраняя первый загрузчик классов, я попытался использовать второй загрузчик классов с конфигурацией файла общего доступа jar2 , для второго применения. Но в этом случае любое из приложений работает. Таким образом, это решение было исключено.

Logback. xml первого приложения:

<?xml version="1.0" encoding="UTF-8"?>

<appender name="consoleAppender"
    class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
    </layout>
</appender>

<appender name="mainAppender"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${USR_HOME}/yoda.log</file>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>${USR_HOME}/yoda.%i.log</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>20</maxIndex>
        <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>50MB</maxFileSize>
    </triggeringPolicy>
    <encoder
        class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
    </encoder>
    <prudent>false</prudent>
</appender>

<root name="MAIN_LOGGER" level="ERROR" additivity="true">
    <appender-ref ref="mainAppender" />
</root>

Logback. xml для второго применения:

 <?xml version="1.0" encoding="UTF-8"?>

<appender name="consoleAppender"
    class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
    </layout>
</appender>

<appender name="mainAppender"
    class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${AG_HOME}/kenobi.log</file>
    <rollingPolicy
        class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
        <fileNamePattern>${AG_HOME}/kenobi.%i.log</fileNamePattern>
        <minIndex>1</minIndex>
        <maxIndex>20</maxIndex>
        <cleanHistoryOnStart>true</cleanHistoryOnStart>
    </rollingPolicy>
    <triggeringPolicy
        class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
        <maxFileSize>50MB</maxFileSize>
    </triggeringPolicy>
    <encoder
        class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern%-50(%level %logger{35}) cn=%contextName - %msg%n</Pattern>
    </encoder>
    <prudent>false</prudent>
</appender>

<root name="MAIN_LOGGER" level="ERROR" additivity="true">
    <appender-ref ref="mainAppender" />
</root>

1 Ответ

0 голосов
/ 17 апреля 2020

Похоже, что только один из конфигурационных файлов logback загружается загрузчиком классов, совместно используемым обоими приложениями. Вместо того, чтобы упаковать файл конфигурации logback или log4j в файлы jar приложения, попробуйте добавить два файла конфигурации в две общие библиотеки, определенные в WebSphere, и настройте приложение для ссылки на ваши общие библиотеки.

Ознакомьтесь со статьей IBM Knowledge Center, посвященной справочным библиотекам общего пользования. https://www.ibm.com/support/knowledgecenter/SS7K4U_9.0.5/com.ibm.websphere.zseries.doc/ae/tcws_sharedlib_app.html

...