2017-01-11 40 views
0

Я пытаюсь развернуть приложение Spring-Boot с использованием журнала в существующий контейнер WildFly 8, но как только приложение развернуло все журналы контейнеров, остановитесь записывается в server.log и в конечном итоге захватывается журналами приложений.Развертывание приложения Spring-Boot в WildFly 8 приводит к перенаправлению журналов контейнеров

Симптомы аналогичны описанным в WildFly not logging after deploying app with Logback. Если я разворачиваю приложение, которое вручную содержит зависимости logback/slf4j, приложение ведет себя так, как я ожидал (журналы приложений переходят в лог-файл приложения, журналы контейнеров идут на server.log), поэтому я предполагаю, что это что-то связано с весенне- загружается? Могу ли я настроить это так, чтобы ведение журнала контейнера продолжало обрабатываться Wildfly?

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.test.logging</groupId> 
    <artifactId>logger-test</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.4.3.RELEASE</version> 
    </parent> 
    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
    </dependencies> 
</project> 

logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <property name="path_base" value="d:/test-logger/" /> 
    <property name="pattern" 
     value="%date{ISO8601} %level %class{30} %thread %msg %mdc %ex{full} %n" /> 

    <!-- Simple File Appender --> 
    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <file>${path_base}test-logger.log</file> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
      <fileNamePattern>${path_base}/archive/%d{yyyy-MM,aux}/test-logger.log.%d.%i.gz 
      </fileNamePattern> 
      <maxHistory>90</maxHistory> 
      <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
       <maxFileSize>100MB</maxFileSize> 
      </timeBasedFileNamingAndTriggeringPolicy> 
     </rollingPolicy> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <pattern>%date{ISO8601} %level %class{30} %thread %msg %mdc %ex{full} %n</pattern> 
    </encoder> 
</appender> 

<root level="INFO"> 
    <appender-ref ref="file" /> 
</root> 
</configuration> 

JBoss-deployment.xml

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

Spring загрузки инициализатор

package com.test; 

import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.builder.SpringApplicationBuilder; 
import org.springframework.boot.web.support.SpringBootServletInitializer; 

@SpringBootApplication 
public class BootApp extends SpringBootServletInitializer { 

    @Override 
    protected SpringApplicationBuilder configure(
      SpringApplicationBuilder builder) { 
     return builder.sources(BootApp.class); 
    } 

} 

ответ

1

У меня была аналогичная проблема, когда я разворачивал приложение пружинными загрузочным WebSphere. После того, как приложение печатает баннер, все сообщения журнала из websphere регистрируются в журнале приложений.

Проблема возникла из-за того, что пружинная загрузка добавляется как одна из ее зависимостей jul-to-slf4j.jar. Этот jar реализует классы java.util.logging. * И websphere также использует java.util.logging, поэтому, исключив jul-to-slf4j.jar из весенней загрузки, я смог направить все сообщения websphere в журнал контейнеров, и журналы приложений были записанных в журнал приложений.

0

У меня была аналогичная проблема: Запуск Весна-ботинок 1.5.8 на Wildfly 9.0.2Final

я должен был исключить следующие до регистрации было обработано контейнером:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jul-to-slf4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>log4j-over-slf4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>jcl-over-slf4j</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

spring-boot-starter-data-jpa имеет spring-boot-starter-logging, у которого были исключены зависимости i.