файл log4 не загружен в подсистему верблюдов wildfly - PullRequest
0 голосов
/ 11 июня 2018

Это моя среда

  • Wildfly 12.0.0. Финал
  • WildFly-Camel 6.1.0 (WildFly-Camel 6.1.0 обеспечивает интеграцию Camel-2.21.1 с WildFly-12.0.0)
  • Oracle jdk 1.8.0_112 64 бита

Я создал проект maven

  • Идентификатор группы: org.wildfly.camel.archetypes
  • Идентификатор артефакта: wildfly-camel-archetype-cdi
  • Версия: 6.1.0

Я кодировал следующий маршрут

@ApplicationScoped
@ContextName("camel-cdi-context")
public class RouteTestLog extends RouteBuilder{

    private static final Logger miLog = LoggerFactory.getLogger("testLogger");

    @Override
    public void configure() throws Exception {

        Supplier<LocalDateTime> now = LocalDateTime::now;

        from("timer:simple?period=1000") // every second            
            .setBody( now ) // I set the body as the current LocalDateTime
            .log(LoggingLevel.ERROR, miLog, "This is a message ${body}") //     I log it using the log component
            .process(new Processor() {              
                @Override
                public void process(Exchange exchange) throws Exception {
                    miLog.error("This is a message inside a processor " +     exchange.getIn().getBody(LocalDateTime.class));
                }
            })
            .process().body( System.out::println ); // I log it in the     standard output for debug my test :S
    }//configure
}//RouteTestLog

И я также написал следующий файл конфигурации log4j2 xml.Он находится в каталоге src / main / resources.В целевой WAR файл находится в WEB-INF \ classes \ log4j2.xml

<?xml version="1.0" encoding="UTF-8" ?>
 <configuration status="debug">
    <appenders>     
        <file name="testAppender" fileName="logs/test.log" append="false"/>
        <file name="rootApender"  fileName="logs/root.log" append="false"/>
    </appenders>
    <loggers>       
        <Logger name="testLogger" level="all" additivity="false">
            <AppenderRef ref="testAppender"/>
        </Logger>       
        <Root level="all">
            <AppenderRef ref="rootApender" />
        </Root>
    </loggers>
</configuration>

Когда я развертываю сгенерированную войну на сервере Wildfly 12, исправленном с Wildfy-верблюдомподсистема.Я использую конфигурационный файл standalone-camel-full.xml без изменений.Я вижу в server.log следующие строки:

2018-06-11 14:47:38,492 ERROR [testLogger] (Camel (camel-cdi-context) thread #1 - timer://simple) This is a message 2018-06-11T14:47:38.489
2018-06-11 14:47:38,497 ERROR [testLogger] (Camel (camel-cdi-context) thread #1 - timer://simple) This is a message inside a processor 2018-06-11T14:47:38.489
2018-06-11 14:47:38,499 INFO  [stdout] (Camel (camel-cdi-context) thread #1 - timer://simple) 2018-06-11T14:47:38.489

Что именно то, что я хочу записать.Но ни один из моих appenders, настроенных в моем файле log4j, не создан.Все регистрируется под server.log сервера Wildfly 12.

В документации Wildfly Camel Я не могу найти никаких ссылок на ведение журнала.Руководство по администрированию Wildfly 12 , Logging Configuration говорит о параметре use-deploy-logging-config , который будет включен в раздел подсистемы журналирования конфигурации xml (standalone-camel-full).xml)

Из документов

use-deploy-logging-config

use-deploy-logging-config определяет, будет ли сканироваться развертываниедля ведения журнала для каждого развертывания.Если установлено значение true, ведение журнала для каждого развертывания по умолчанию включено.Установите в false, чтобы отключить эту функцию.

9.4.2.Ведение журнала для каждого развертывания

Ведение журнала для каждого развертывания позволяет добавить файл конфигурации ведения журнала в ваше развертывание и настроить ведение журнала для этого развертывания в соответствии с файлом конфигурации.В EAR конфигурация должна находиться в каталоге META-INF.В развертывании WAR или JAR файл конфигурации может находиться в каталогах META-INF или WEB-INF / classes.

Допустимы следующие файлы конфигурации:

logging.properties

jboss-logging.properties

log4j.properties

log4j.xml

jboss-log4j.xml

Вы также можете отключить эту функцию с помощьюизменив атрибут use-deploy-logging-config на false.

Я протестировал имя моего файла log4 из log4j2.xml в log4j.xml, но он все еще не загружен.

Я также установил свойство use-deploy-logging-config в файле standalone-camel-full.xml.Даже то, что сказано в документации, по умолчанию имеет значение true.Опять тот же результат.Мои файлы журнала не создаются.

Я думаю, что файл даже не загружается, как будто я делаю синтаксическую ошибку внутри него, эта ошибка никогда не отображается во время развертывания или запуска сервера.

Этоэто также мой эффективный pom.xml из Eclipse IDE, в случае отсутствия зависимости

  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.25</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
    <version>1.7.25</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>log4j-over-slf4j</artifactId>
    <version>1.7.25</version>
  </dependency>
  <dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jcl</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jul</artifactId>
    <version>2.9.1</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-web</artifactId>
    <version>2.9.1</version>
  </dependency>

Есть идеи, почему мой файл не загружается?

...