Настройте одно веб-приложение Tomcat, чтобы игнорировать Tomcat/libs log4j jar из-за конфликта

У меня есть веб-приложение на Java, использующее Spring Boot, которое работает нормально, и я использую SLF4J (с log4j2). Это все работает - и выходит из системы в правильные файлы - в моем локальном экземпляре Tomcat, у которого нет конфликтующих Jars в пути к классам.

Однако при развертывании в производственной среде, кажется, существует существующий файл jar log4j в каталоге Tomcat/lib (который превосходит мой собственный jar log4j2 в каталоге WEB-INF/lib). Я получаю некоторые ошибки при запуске, которые, кажется, не связаны с моей собственной конфигурацией, так как количество регистраторов / свойств не совпадает.

У меня только ограниченный контроль над производственной средой Tomcat, поэтому в идеале я хотел бы иметь возможность ограничить, какие библиотеки включены в путь к классам только для моего веб-приложения, без изменения конфигурации для других, развернутых в том же экземпляре Tomcat.

Поэтому мой вопрос таков: возможно ли исключить предоставленный jar log4j только из моего приложения и вместо этого использовать поставляемый jar log4j2?

Заранее спасибо!

Ошибки при запуске

2016-03-07 15:34:29,346 localhost-startStop-10 ERROR Error processing element appender ([configuration: null]): CLASS_NOT_FOUND
2016-03-07 15:34:29,347 localhost-startStop-10 ERROR Error processing element appender ([configuration: null]): CLASS_NOT_FOUND
2016-03-07 15:34:29,347 localhost-startStop-10 ERROR Error processing element appender ([configuration: null]): CLASS_NOT_FOUND
2016-03-07 15:34:29,348 localhost-startStop-10 ERROR Error processing element appender ([configuration: null]): CLASS_NOT_FOUND
2016-03-07 15:34:29,349 localhost-startStop-10 ERROR property contains an invalid element or attribute "value"
2016-03-07 15:34:29,349 localhost-startStop-10 ERROR Unknown object "property" of type org.apache.logging.log4j.core.config.Property is ignored.
2016-03-07 15:34:29,350 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,350 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,351 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,352 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,352 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,353 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,353 localhost-startStop-10 ERROR Unknown object "root" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.
2016-03-07 15:34:29,354 localhost-startStop-10 ERROR Unknown object "logger" of type org.apache.logging.log4j.core.config.LoggerConfig is ignored.

файл конфигурации log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration name="PSPCC" monitorInterval="30">
    <Properties>
        <Property name="LOG_PATH">logs</Property>
        <Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{--}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%wEx</Property>
    </Properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="${LOG_PATTERN}" />
        </Console>
        <RollingFile name="File" fileName="${LOG_PATH}/pspcc.log"
                     filePattern="${LOG_PATH}/pspcc-${date:yyyy-MM-dd}.log" append="true">
            <Policies>
                <SizeBasedTriggeringPolicy size="1 MB" />
            </Policies>
            <DefaultRolloverStrategy max="3"/>
            <PatternLayout pattern="${LOG_PATTERN}" />
        </RollingFile>
    </Appenders>
    <Loggers>
        <Logger name="org.hibernate" level="warn" />
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
        <Logger name="org.springframework.security.saml" level="debug" />
        <Logger name="org.springframework.security" level="info" />

        <Root level="warn">
            <AppenderRef ref="Console"/>
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

0 ответов

Другие вопросы по тегам