2013-02-14 31 views
7

जब भी लॉगिंग सक्षम होती है (ऐप में कॉन्फ़िगरेशन) फ़ाइल में संदेशों को लॉग इन करने के लिए मैं अपने एंड्रॉइड एप्लिकेशन में logback-android का उपयोग कर रहा हूं। यह ठीक काम कर रहा है, लेकिन मैं इस परिदृश्य परलॉगबैक-एंड्रॉइड: किसी भी आकार के आधार पर फिक्स्डविंडो रोलिंग पॉलिसी का उपयोग करते समय फिक्स्डविंडो रोलिंग पॉलिसी का उपयोग करते समय "कोई लागू कार्रवाई नहीं" त्रुटि

  • घुमाएँ लॉग इन करें जब इसका आकार तक पहुँच जाता है 50MB
  • जब लॉग रोटेशन जगह लेता है के लिए बैकअप फ़ाइलों बनाएं जब। जैसे। testFile.1.log.zip

मैं निम्नलिखित logback.xml इस उद्देश्य के लिए फ़ाइल है:

<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> 

प्रति this जवाब के रूप में के रूप में वहाँ है एक bug (src) 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]] 

पुनश्च: मैं 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

<AppenderRef ...><appender-ref ...> की बजाय गलत वर्तनी के बाद इस त्रुटि भी हो सकता है।