2013-02-14 10 views
7

ログは有効になっていれば、アンドロイドアプリケーションでlogback-androidを使用してメッセージをログに記録しています。 それは正常に動作しているようだが、私はそのサイズが50メガバイト Logback-Android:FixedWindowRollingPolicyとSizeBasedTriggeringPolicyを使用するとエラーが発生しました。

  • は、ログのローテーションが行われるときのためのバックアップファイルを作成して到達したとき、次のシナリオ

    • 回してログインしていたとき。例えば。 testFile.1.log.zip

    私は、この目的のために、次のlogback.xmlファイルがあります:bugsrc)があるようthis答えを1として

    <configuration> 
    <appender name="FILE" class="ch.qos.logback.core.FileAppender"> 
        <file>/sdcard/dappLog.log</file> 
        <append>true</append> 
        <encoder> 
         <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
        </encoder> 
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
         <fileNamePattern>/sdcard/dappLog.%i.log.zip</fileNamePattern> 
         <minIndex>1</minIndex> 
         <maxIndex>2</maxIndex> 
        </rollingPolicy> 
    
        <triggeringPolicy class="com.dapp.utilities.SizeBasedTriggeringPolicy"> 
         <maxFileSize>50MB</maxFileSize> 
        </triggeringPolicy> 
    </appender> 
    
    <root level="INFO"> 
        <appender-ref ref="FILE" /> 
    </root> 
    

    をSizeBasedTriggerPolicyでは、次の実装があります。

    package com.dapp.utilities; 
    import java.io.File; 
    import ch.qos.logback.core.util.FileSize; 
    public class SizeBasedTriggeringPolicy<E> extends ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy<E> { 
        @Override 
        public boolean isTriggeringEvent(final File activeFile, final E event) { 
         return (activeFile.length() >= FileSize.valueOf(getMaxFileSize()).getSize()); 
        } 
    } 
    

    `

    私はこれを実行しているときしかし、私は次のエラーを取得しています:

    I/System.out(2346): 16:14:20,750 |-ERROR in [email protected]:85 - no applicable action for [rollingPolicy], current pattern is [[configuration][appender][rollingPolicy]] 
    I/System.out(2346): 16:14:20,757 |-ERROR in [email protected]:30 - no applicable action for [fileNamePattern], current pattern is [[configuration][appender][rollingPolicy][fileNamePattern]] 
    I/System.out(2346): 16:14:20,763 |-ERROR in [email protected]:23 - no applicable action for [minIndex], current pattern is [[configuration][appender][rollingPolicy][minIndex]] 
    I/System.out(2346): 16:14:20,770 |-ERROR in [email protected]:23 - no applicable action for [maxIndex], current pattern is [[configuration][appender][rollingPolicy][maxIndex]] 
    I/System.out(2346): 16:14:20,777 |-ERROR in [email protected]:90 - no applicable action for [triggeringPolicy], current pattern is [[configuration][appender][triggeringPolicy]] 
    I/System.out(2346): 16:14:20,820 |-ERROR in [email protected]:26 - no applicable action for [maxFileSize], current pattern is [[configuration][appender][triggeringPolicy][maxFileSize]] 
    

    PS:私はlogbackする新たなんです。

  • 答えて

    11

    自分自身で問題を解明しました。 appenderタグの間違ったclass属性のためです。
    は、したがって、次のコードは動作します:

    <configuration> 
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <file>/sdcard/dapp.log</file> 
        <append>false</append> 
    
        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
         <fileNamePattern>/sdcard/dapp.%i.log.zip</fileNamePattern> 
         <minIndex>1</minIndex> 
         <maxIndex>2</maxIndex> 
        </rollingPolicy> 
    
        <triggeringPolicy class="com.bigbasket.dapp.utilities.SizeBasedTriggeringPolicy"> 
         <maxFileSize>50MB</maxFileSize> 
        </triggeringPolicy> 
        <encoder> 
         <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
        </encoder> 
    </appender> 
    
    <root level="INFO"> 
        <appender-ref ref="FILE"/> 
    </root> 
    

    1

    があまりにもこのエラーが発生する可能性があります​​代わり<appender-ref ...>のの間違ったスペルを持ちます。

    関連する問題