2017-06-05 13 views
0

ノー喜びで、私はここにいくつかの質問に対する回答で見つかったすべての提案をしようと、ほとんど2固体日間壁に頭を叩いてきました。春は正常に記録されているようですが、私のアプリケーションクラスからは何も記録されていません。私はSpringブート1.5.3を使用しており、log4jを使用し、Tomcatコンテナで実行するアプリケーションを構築しています(したがって、Springの埋め込みTomcatコンテナは必要ありません)。ここに私の元のpom.xmlにあった依存関係は、次のとおりです。私のクラスはログに記録されませんが、Springはログを記録します(Mavenとlog4jを使ったSpringブート)。

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.3.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>ch.qos.logback</groupId> 
       <artifactId>logback-classic</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.jboss.logging</groupId> 
       <artifactId>jboss-logging</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.hibernate</groupId> 
       <artifactId>hibernate-validator</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
      <exclusion> 
       <artifactId>log4j-over-slf4j</artifactId> 
       <groupId>org.slf4j</groupId> 
      </exclusion> 
     </exclusions> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
     <version>2.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-jcl</artifactId> 
     <version>2.7</version> 
    </dependency> 

    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
     <version>2.7</version> 
    </dependency> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-web</artifactId> 
     <version>2.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-slf4j-impl</artifactId> 
     <version>2.7</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

私は結果に変化がないと@ M.Deinumによって提案された解決策を試してみました:春は、成功したログイン私のクラスはしませんでした。現在、私のpom.xmlでの依存関係があるだけで

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="DEBUG"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Logger name="org.springframework.beans.factory" level="DEBUG"/> 
     <Root level="DEBUG"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

:私は私のアプリのクラスパスのルートにある以下の設定ファイルを持っている

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.3.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</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-log4j2</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

:その場合のpom.xmlは、このように見えました順列私は春Frameworkリファレンス4.3.8.RELEASEから取られたコードを使用して、試してみたと、複数の質問のloooooongラインの最新はStackOverflowの上ここに答えました。

+0

はロガーの初期化 – Zico

+0

と一緒にあなたのクラスレベルのロギングの例を示し、すべての後、((ちょうど '春ブート-logging'を除外)と'春・ブート・スターター・log4j2'の代わりに、個々の依存関係を追加除いを削除しますあなたがサポートされ、管理バージョンを取得。 –

+0

@Zicoを私はこれがあなたの質問に答えるわからないんだけど、私のクラスは 'org.apache.logging.log4j.LogManager'と' org.apache.logging.log4j.Logger'をインポートしています。クラス(すべてのシングルトンSpring Bean)は 'private static final Logger logger = LogManager.getLogger(ThisClass.class);'を作成し、 'logger.debug("ログファイルに書き込まれないテキストを " ) '。 – Thom

答えて

1

クリーンアップあなたの依存関係、あなたはあまりにも多くを除くと、あまりを含めています。 Springブートには、サポートされているすべてのロギングパッケージ用の独立したスターターがあります。

これは、reference guideでも説明されています。ロギングを使用する場合

は今SLF4J APIを介して行くと(これは非常に早期の初期化を誘発し、春ブーツからセットアップを妨げる可能性があるとして)直接Log4j2ないようにしてください。

展開可能な戦争を作成するには、スコープprovidedを除外しないで、依存関係の一部を修正する必要があります。これはreference guideにも記載されています。

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-tomcat</artifactId> 
    <scope>provided</scope> 
</dependency> 
+0

あなたが説明したことを試しました。私の元の投稿に加えて、 pom.xmlを改訂しました。これまでと同じ結果を試しました。私の答えで述べたように – Thom

+0

、ログインする代わりに、直接log4j2ロガーを呼び出すためのSLF4J APIを使用します。 –

関連する問題