Файл log4 не загружен в подсистему верблюдов wildfly
Это моя среда
- Wildfly 12.0.0.Final
- 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-camel. Я использую файл конфигурации 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 определяет, будет ли ваше развертывание сканироваться на наличие журналов для каждого развертывания. Если установлено значение 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>
Есть идеи, почему мой файл не загружается?