2017-06-05 8 views
3

私は別のプロジェクトをmaven依存関係として使用してアプリケーションを開発しています。ログバックは依存関係を無効にしますlogback.xml

期待

私は、独自のファイルにログインするために、独自のlogback.xmlを使用して、私の依存関係をしたいです。 そして、私は独自のlogback.xmlファイルを使って、コンソールと依存関係以外のファイルにログインするようにします。そして、私は両方のファイルをアプリケーション・ジャーの近くのログ・フォルダーに入れたい。

それは

しかし、アプリケーションおよび依存アプリケーションのlogback.xmlを使用し、すべてのものの両方がコンソールに、同じファイルに記録された瞬間のために今何。

どうすればこの問題を解決できますか?

はどちらロガーとしてlogback使用するプロジェクトについて

詳細。依存関係は、アプリケーションログ以外のファイルに通信情報を記録するプロトコルの実装です。 アプリケーションと依存関係には、リソースフォルダ内にlogback.xmlファイルがある従来の構造があります。

依存logback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern> 
      %d{HH:mm:ss}|%msg%n 
     </Pattern> 
    </encoder> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <fileNamePattern>./log/communications.%d{yyyy-MM-dd}.%i.log 
     </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender> 

<root level="DEBUG"> 
    <appender-ref ref="FILE"/> 
</root> 

</configuration> 

アプリケーションlogback.xml

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <Pattern> 
      %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n 
     </Pattern> 
    </layout> 
</appender> 
<appender name="FILEAPPLI" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern> 
      %d{HH:mm:ss}|%msg%n 
     </Pattern> 
    </encoder> 
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <fileNamePattern>./log/debugfileappli.%d{yyyy-MM-dd}.%i.log 
     </fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 
</appender> 

<root level="DEBUG"> 
    <appender-ref ref="STDOUT"/> 
    <appender-ref ref="FILEAPPLI"/> 
</root> 

</configuration> 

答えて

0

私は解決策を見つけました。私の依存関係コードでは、特定のロガー名を呼び出します。

private static final Logger logger = LoggerFactory.getLogger("dependencyLogger"); 

そして、私は、単一のlogback.xml内の依存からのすべてのログをしたいと私は私が扱うことができる。このようにして、自分のアプリケーションのlogback.xml

<logger name="dependencyLogger" level="debug"> 
    <additivity="false"> 
    <appender-ref ref="FILE-AUDIT" /> 
    <appender-ref ref="STDOUT" /> 
</logger> 

で、このロガーを宣言

関連する問題