Где поместить logback.xml в приложение Java EE в WildFly 14 - PullRequest
0 голосов
/ 01 марта 2019

У меня есть приложение Java EE, которое состоит из пакетов EAR, WAR и EJB.

Я настроил logback, определив метод @Produces в классе EJB, например:

import org.slf4j.LoggerFactory;
import org.slf4j.Logger;

@Named
@Singleton
public class LoggerProducer {

    @Produces
    public Logger produceLogger(InjectionPoint injectionPoint) {
        return LoggerFactory.getLogger(injectionPoint.getMember()
                                       .getDeclaringClass().getName());
    }

}

Это работает нормально, вводит интерфейс с

@Inject
private Logger logger;

и регистрируется с

logger.error("This is the error");

У меня есть эти зависимости в моем pom.xml:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>

    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>

Теперь я пытаюсь включить файл logback.xml в развертывание, я добавил его в путь к классам EJB:

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

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
            </Pattern>
        </layout>
    </appender>

    <root level="debug">
        <appender-ref ref="STDOUT" />
    </root>

</configuration>

Но он не работает, он регистрируется со стандартным /формат по умолчанию.

Я добавил следующий файл jboss-deployment-structure.xml в папку EJB / META-INF, чтобы исключить ведение журнала:

<jboss-deployment-structure>
    <deployment>
        <exclude-subsystems>
            <subsystem name="logging"/>
        </exclude-subsystems>
    </deployment>
</jboss-deployment-structure>

Но он тоже не работает.Если я добавлю jboss-deployment-structure.xml в EAR / META-INF, при запуске я получу следующую ошибку (указывающую только на классы WAR):

org.jboss.weld.exceptions.DeploymentException: WELD-001408: Неудовлетворенные зависимости для типа Logger с квалификаторами @ По умолчанию

Где разместить файл logback.xml?Как настроить файл jboss-deployment-structure.xml и куда его поместить?

1 Ответ

0 голосов
/ 01 марта 2019

Поместите его в папку ресурсов или любую папку, которая находится в пути к классам среды выполнения (для системной переменной CLASSPATH должна быть запись).Например, заставьте ваш файл "make" скопировать его в WEB-INF / classes (хотя это не очень хороший выбор).

...