2017-06-12 19 views
0

私は自分のプロジェクトでログバックを使用しており、ファイルにはログインしません。ログバックがファイルに記録されない

私logback.xmlこの

<property file="api.properties"/> 

<appender name="FILE-AUDIT" 
      class="ch.qos.logback.core.rolling.RollingFileAppender"> 
    <file>c:/debug.log</file> 
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"> 
     <Pattern> 
      %d{yyyy-MM-dd HH:mm:ss} - %msg%n 
     </Pattern> 
    </encoder> 

    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
     <!-- rollover daily --> 
     <fileNamePattern>c:/archived/debug.%d{yyyy-MM-dd}.%i.log</fileNamePattern> 
     <timeBasedFileNamingAndTriggeringPolicy 
       class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> 
      <maxFileSize>10MB</maxFileSize> 
     </timeBasedFileNamingAndTriggeringPolicy> 
    </rollingPolicy> 

</appender> 

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern> 
    </encoder> 
</appender> 

<logger name="JDBC" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 
<logger name="RESTSecurity" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 
<logger name="models" level="INFO" additivity="false"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</logger> 

<!-- Strictly speaking, the level attribute is not necessary since --> 
<!-- the level of the root level is set to DEBUG by default.  --> 
<root level="DEBUG"> 
    <appender-ref ref="STDOUT" /> 
</root> 

のように見え、それがWEB-INF/classesの中に置かれています。

私は、WebLogicサーバー上の私のアプリを実行すると、私はコンソールに私のログメッセージを取得しますが、それは、ログファイルを作成しませんこれらの依存関係

<dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-core</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 

を使用しています。 何が間違っている可能性がありますか?

EDIT: そのクラスは、JDBCパッケージにあるように私は両方の

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

private static final Logger logger = LoggerFactory.getLogger(Roles.class); 

を使用してみました。 は、その後、私はちょうど

logger.info("Initializing roles"); 

EDIT2の操作を行います。私は、コンソールで取得するログメッセージは、それがすべての私のlogback.xmlを無視しないようにそれが見えるものlogback.xmlであるから違って見える ので。

<root level="DEBUG"> 
    <appender-ref ref="STDOUT" /> 
    <appender-ref ref="FILE-AUDIT" /> 
</root> 
+0

あなたはlogback設定で異なるロガーを使用しているとして、あなたのコードを表示してください。 – Rouliboy

+0

@Rouliboy EDITで追加しました –

+0

' c:/archived/debug.%d {yyyy-MM-dd}。%i.log'と' 'の間で改行と空白を削除してみてください。アプリケーションに対応するファイルを作成する権限があり、 'c:/ archived'ディレクトリが既に存在していますか? – yeputons

答えて

0

問題をSLF4JをピックアップしないのWeblogicから来なければならない:

+0

これで解決しました!ありがとう! –

0

は、あなたがファイルにログに記録するDEBUGをしたい場合は、次のように参照を追加し、ログレベルにすべてのアペンダを追加する必要があります/あなたのクラスパスからのログバック。

は、あなたのweblogic.xmlに次のprefer-application-packagesを追加します。

<prefer-application-packages> 
    <package-name>org.slf4j.*</package-name> 
    <package-name>ch.qos.logback.*</package-name> 
</prefer-application-packages> 
+0

動作しません。しかし、上記のコメントに記載されているように、私のアプリケーションはlogback.xmlを無視しているように見えます。おそらくxmlファイルの不具合ではありません。私はそれを言及するために投稿を更新しました。 –

関連する問題