Logback-Android: error de "acción no aplicable" cuando se utiliza FixedWindowRollingPolicy con un parámetro SizeBasedTriggeringPolicy

Estoy utilizando logback-android en mi aplicación android para registrar mensajes en un archivo, siempre que el registro está habilitado (configuración en la aplicación). Parece estar funcionando bien, pero cuando tengo el siguiente escenario

  • Rotar registro cuando su tamaño alcanza los 50 MB
  • Cree archivos de copia de seguridad para cuando tenga lugar la rotación de registro. p.ej. TestFile.1.log.zip

Tengo el archivo logback.xml siguiente para este propósito:

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

Según esta respuesta, ya que hay un error ( src ) en SizeBasedTriggerPolicy, por lo que tengo la siguiente implementación:

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

Sin embargo, cuando estoy corriendo esto, estoy recibiendo el siguiente 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: Soy nuevo al regreso.

Calculé el problema yo mismo. Fue debido al atributo de class incorrecto en la etiqueta de appender .
Así que el código siguiente funciona:

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

Tener la ortografía incorrecta de <AppenderRef ...> lugar de <appender-ref ...> puede causar este error también.

  • Registro de Android con Crashlytics
  • Logcat no muestra mis llamadas de registro
  • Cómo obtener el registro detallado en Logcat para un módulo específico
  • Disminuir la verbosidad del registro interno de ORMlite o deshabilitarla
  • Android: graba vídeo en la misma orientación independientemente de la orientación del dispositivo
  • Log.d e impacto en el rendimiento
  • Android, ¿Log reduce la velocidad de la aplicación?
  • Grabación y almacenamiento de audio en Android
  • Visor de registro de escritorio de Android
  • ¿Cuál es el significado del registro de la etiqueta: "szipinf" y el texto: "Initializing inflate state" de Logcat
  • ¿Cómo obtener slf4j-android para honrar el nivel de registro de Logcat?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.