2016-03-25 35 views
0

ログブート時にlog4j2を使用しようとしましたが、正常に動作しますが、すべてのログがlog4j2に設定された としてログファイルに書き込まれるわけではありません。 XML少数のログは log4j2.xmlとスプリングブート時に部分的にログファイルとコンソールにログ出力するlog4j2

のpom.xml

<groupId>CNER</groupId> 
<artifactId>WS</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>WS</name> 
<url>http://maven.apache.org</url> 
<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.2.RELEASE</version> 
</parent> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-rest</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.postgresql</groupId> 
     <artifactId>postgresql</artifactId> 
     <version>9.4-1200-jdbc4</version> 
    </dependency> 
    <dependency> 
     <groupId>com.mangofactory</groupId> 
     <artifactId>swagger-springmvc</artifactId> 
     <version>0.8.5</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-httpclient</groupId> 
     <artifactId>commons-httpclient</artifactId> 
     <version>3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>CNER</groupId> 
     <artifactId>DAL</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>com.collabnet.eventrouter</groupId> 
     <artifactId>rabbitmq-connection</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>CNER</groupId> 
     <artifactId>Utils</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 
</dependencies> 

<repositories> 
    <repository> 
     <id>spring-releases</id> 
     <name>Spring Releases</name> 
     <url>https://repo.spring.io/libs-release</url> 
    </repository> 
    <repository> 
     <id>org.jboss.repository.releases</id> 
     <name>JBoss Maven Release Repository</name> 
     <url>https://repository.jboss.org/nexus/content/repositories/releases</url> 
    </repository> 
</repositories> 

<pluginRepositories> 
    <pluginRepository> 
     <id>spring-releases</id> 
     <name>Spring Releases</name> 
     <url>https://repo.spring.io/libs-release</url> 
    </pluginRepository> 
</pluginRepositories> 

をログファイルする と出力をコンソールに出力が続き、私のポンポンのスニペットを取り付けたコンソールに向けられています

log4j2.xml

<Properties> 

     <Property name="LOG_DIR">${env:logging.file}</Property> 
     <Property name="ARCHIVE">${LOG_DIR}/archive</Property> 
     <Property name="PATTERN">%-5level %d [%t] %c:%M(%L): %m%n</Property> 
    </Properties> 
    <Appenders> 
     <Console name="STDOUT" target="SYSTEM_OUT"> 
      <PatternLayout pattern="${PATTERN}"/> 
     </Console> 

     <RollingFile name="fileWriter" 
        fileName="${LOG_DIR}/erdaemon.log" 
        filePattern="${ARCHIVE}/erdaemon.log.%d{yyyy-MM-dd-hh-mm}.gz"> 
      <PatternLayout pattern="${PATTERN}"/> 
      <OnStartupTriggeringPolicy /> 
     </RollingFile> 
    </Appenders> 
    <Loggers> 
     <Root level="INFO"> 
      <AppenderRef ref="fileWriter"/> 
     </Root> 
     <Logger name="com" level="TRACE" additivity="false"> 
      <AppenderRef ref="fileWriter"/> 
     </Logger> 

    </Loggers> 

コンソール出力

> SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found 
    > binding in 
    > [jar:file:/C:/Users/dinesh.reddy/.m2/repository/org/slf4j/slf4j-simple/1.7.13/slf4j-simple-1.7.13.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in 
    > [jar:file:/C:/Users/dinesh.reddy/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.4.1/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 
    > SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an 
    > explanation. SLF4J: Actual binding is of type 
    > [org.slf4j.impl.SimpleLoggerFactory] 
    > 
    > [main] INFO CNER.WS.App - Starting App on HYD01-DINESH-LT with PID 
    > 11444 (E:\masterws\event_router\server\WebServices\WS\target\classes 
    > started by dinesh.reddy in 
    > E:\masterws\event_router\server\WebServices\WS) [main] INFO 
    > CNER.WS.App - The following profiles are active: default [main] INFO 
    > org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext 
    > - Refreshing org.springframework.boot[email protected]40c80397: 
    > startup date [Fri Mar 25 06:22:11 UTC 2016]; root of context hierarchy 
    > [main] INFO 
    > org.springframework.beans.factory.support.DefaultListableBeanFactory - 
    > Overriding bean definition for bean 'beanNameViewResolver' with a 
    > different definition: replacing [Root bean: class [null]; scope=; 
    > abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; 
    > autowireCandidate=true; primary=false; 
    > factoryBeanName=org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration$WhitelabelErrorViewConfiguration; 
    > factoryMethodName=beanNameViewResolver; initMethodName=null; 
    > destroyMethodName=(inferred); defined in class path resource 

は、ログファイルの出力

INFO 2016-03-25 11:48:31,816 [main] CNER.WS.App:main(54): Starting Event Router Server ... 
INFO 2016-03-25 06:18:32,797 [background-preinit] org.hibernate.validator.internal.util.Version:<clinit>(17): HV000001: Hibernate Validator 5.2.2.Final 
INFO 2016-03-25 06:18:38,409 [localhost-startStop-1] org.hibernate.jpa.internal.util.LogHelper:logPersistenceUnitInformation(46): HHH000204: Processing PersistenceUnitInfo [ 
    name: default 
    ...] 

答えて

0

は、複数のバインディングを取り除くようにしてください:

SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found 
> binding in 
> [jar:file:/C:/Users/dinesh.reddy/.m2/repository/org/slf4j/slf4j-simple/1.7.13/slf4j-simple-1.7.13.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in 
> [jar:file:/C:/Users/dinesh.reddy/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.4.1/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] 

上記のジャーの1つを除きます。好ましくは、スプリングで追加されていないジャーを除きます。

依存関係(mvn依存関係:ツリーも参照してください。mvn dependency tree)と<exclude>を参照してください。

関連する問題