Почему журнал консоли WildFly захватывает журнал WAR моей log4j? - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть 7 различных WAR, развернутых на одном сервере WildFly / JBoss.Каждая WAR идентична по дизайну ядра и конфигурации Log4j.Каждая WAR генерирует свой собственный файл журнала через собственный индивидуальный файл log4j.xml.Каждый журнал записывается в отдельные папки.

1 из 7 развернутых WAR-файлов продолжает захват журнала с помощью console.log WildFly.Во время инициализации он начнет запись в собственный журнал на 5-10 строк, затем остановится;остальная часть журнала будет направлена ​​в console.log.

Если я переустановлю WAR после того, как это произойдет, он запишет как собственный журнал, так и консоль WildFly.Если я перезапущу WildFly, он будет вести себя так, как описано ранее - начать запись в свой собственный журнал, а затем продолжить на console.log.

Единственное, что уникально в этой WAR по сравнению с другими 6, - это то, что этот проект использует JAXB;ни одна из других WAR не использует JAXB.

Существует ли какое-то неизвестное взаимодействие между JAXB и Log4j и WildFly, которое может вызывать это? Я подозреваю, но пока не могу доказать, что угон произошелпроисходит после того, как классы, использующие JAXB, загружены ClassLoader.

jboss-7.2.0. Финал, jdk-7u80x64, Log4j-1.2.13.jar

Ответы [ 2 ]

0 голосов
/ 19 января 2019

Решено путем исключения модуля log4j из приложения через /WEB-INF/jboss-deployment-structure.xml

<jboss-deployment-structure>
    <deployment>
        <exclusions>
            <module name="org.apache.log4j" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>
0 голосов
/ 31 декабря 2018

Возможно, вам придется попробовать переместить файл logging.properties в WAR / WEB-INF / classes.Я предполагаю, что старый Jboss EAP 6.4, возможно, была ошибка, из-за которой он не мог найти в каталоге WAR / WEB-INF.

Если это не работает, вам нужно включить ведение журнала трассировки для org.jboss.as.logging, который должен показать файл logging.properties, найден в вашем развертывании.

Следующая команда CLI включит ведение журнала трассировки, чтобы увидеть подробности того, что делает подсистема ведения журнала.

/subsystem=logging/logger=org.jboss.as.logging:add(level=TRACE)

Если вы хотите видеть эти сообщения журнала на консоли, вам нужно включить ведение журнала трассировки для инструмента консоли.

/subsystem=logging/console-handler=CONSOLE:write-attribute(name=level, value=TRACE)

ресурсы:

sect-per-deployment_logging

Настройка ведения журнала

...