2017-01-11 1 views
0

J'essaie de déployer une application Spring-Boot en utilisant le logback dans un conteneur WildFly 8 existant, mais dès que l'application a déployé tous les journaux de conteneur étant écrit au server.log et finir par être capturé par les journaux de l'application.Déploiement de l'application Spring-Boot sur WildFly 8 pour rediriger les journaux de conteneur

Les symptômes sont similaires à ceux décrits dans WildFly not logging after deploying app with Logback. Si je déploie une application qui contient manuellement les dépendances logback/slf4j, l'application se comporte comme prévu (les journaux d'application vont au fichier journal de l'application, les journaux du conteneur vont à server.log), donc je suppose que c'est quelque chose à voir avec print- démarrage? Puis-je configurer cela de sorte que la journalisation du conteneur continue d'être gérée par 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> 

botte printemps initialiseur

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); 
    } 

} 

Répondre

1

J'ai eu le même problème quand je déployé application de démarrage ressort à websphere. Après l'application imprime la bannière tous les messages de journal de websphere sont enregistrés dans le journal d'application.

Le problème est survenu parce que spring-boot ajoute comme l'une de ses dépendances jul-to-slf4j.jar. Ce jar implémente les classes java.util.logging. * Et websphere utilise également java.util.logging, donc en excluant jul-to-slf4j.jar du démarrage au printemps, j'ai pu diriger tous les messages websphere vers le journal du conteneur et les journaux d'application étaient écrit dans le journal des applications.

0

j'ai eu un problème similaire: Exécution Spring-boot 1.5.8 sur wildfly 9.0.2Final

je devais exclure les points suivants avant l'enregistrement a été traitée par le conteneur:

<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 a spring-boot-starter-logging qui avait les dépendances que j'ai exclu.