Logback-Android: "not applicable" error when using FixedWindowRollingPolicy with SizeBasedTriggeringPolicy

I use logback-android in an Android app to log messages in a file whenever logging is enabled (setting in the app), It seems to work fine, but when I have the following script

  • Log rotation when its size reaches 50 MB
  • Create backup files when log rotation occurs. eg. testFile.1.log.zip

I have the following logback.xml file for this purpose:

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

Accordingly , answer as there is an error ( src ) in SizeBasedTriggerPolicy, so I have the following implementation:
`

 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()); } } 

`

However, when I run this, I get the following error:

 I/System.out( 2346): 16:14:20,750 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@8 :85 - no applicable action for [rollingPolicy], current pattern is [[configuration][appender][rollingPolicy]] I/System.out( 2346): 16:14:20,757 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@9 :30 - no applicable action for [fileNamePattern], current pattern is [[configuration][appender][rollingPolicy][fileNamePattern]] I/System.out( 2346): 16:14:20,763 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@10 :23 - no applicable action for [minIndex], current pattern is [[configuration][appender][rollingPolicy][minIndex]] I/System.out( 2346): 16:14:20,770 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@11 :23 - no applicable action for [maxIndex], current pattern is [[configuration][appender][rollingPolicy][maxIndex]] I/System.out( 2346): 16:14:20,777 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@14 :90 - no applicable action for [triggeringPolicy], current pattern is [[configuration][appender][triggeringPolicy]] I/System.out( 2346): 16:14:20,820 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@15 :26 - no applicable action for [maxFileSize], current pattern is [[configuration][appender][triggeringPolicy][maxFileSize]] 

PS: I am new to logback.

+7
source share
2 answers

I found out the question itself. This was due to an invalid class attribute in the appender tag.
Thus, the following code works:

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

+11
source

Incorrect spelling of <AppenderRef ...> instead of <appender-ref ...> can also cause this error.

+1
source

All Articles