Logback Android ERROR: no applicable action for [queuesize] [encoder][immediateFlush]
Logback Android ERROR: no applicable action for [queuesize] [encoder][immediateFlush]
“[*] 没有适用的操作”是什么意思?
I: 15:24:17,169 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@24:20 - no applicable action for [queuesize], current ElementPath is [[configuration][appender][queuesize]]
I: 15:24:17,176 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@25:18 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]]
I: 15:24:17,188 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:29 - no applicable action for [immediateFlush], current ElementPath is [[configuration][appender][encoder][immediateFlush]]
这是否意味着我配置它的方式是错误的并且配置行被忽略了??
我做错了什么?
logback.xml :
<configuration debug="true">
<shutdownHook/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DATA_DIR}/logs/jdtest.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${DATA_DIR}/logs/jdtest.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100KB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yy.MM.dd HH:mm:ss.SSS}:\t%logger:\t%msg%n</pattern>
<outputPatternAsHeader>true</outputPatternAsHeader>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queuesize>1000</queuesize>
<encoder>
<immediateFlush>false</immediateFlush>
</encoder>
<appender-ref ref="FILE" />
</appender>
<root level="ALL">
<appender-ref ref="ASYNC" />
</root>
</configuration>
gradle:
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'com.github.tony19:logback-android:2.0.0'
}
AsyncAppender没有编码器properties.AndAsyncAppender有queueSize属性而不是queuesize。如果要使用shutdownHook,指定使用class
<configuration debug="true">
<!-- <shutdownHook/>-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DATA_DIR}/logs/jdtest.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${DATA_DIR}/logs/jdtest.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100KB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yy.MM.dd HH:mm:ss.SSS}:\t%logger:\t%msg%n</pattern>
<outputPatternAsHeader>true</outputPatternAsHeader>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>1000</queueSize>
<!-- <encoder>-->
<!-- <immediateFlush>false</immediateFlush>-->
<!-- </encoder>-->
<appender-ref ref="FILE" />
</appender>
<root level="ALL">
<appender-ref ref="ASYNC" />
</root>
</configuration>
“[*] 没有适用的操作”是什么意思?
I: 15:24:17,169 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@24:20 - no applicable action for [queuesize], current ElementPath is [[configuration][appender][queuesize]]
I: 15:24:17,176 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@25:18 - no applicable action for [encoder], current ElementPath is [[configuration][appender][encoder]]
I: 15:24:17,188 |-ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:29 - no applicable action for [immediateFlush], current ElementPath is [[configuration][appender][encoder][immediateFlush]]
这是否意味着我配置它的方式是错误的并且配置行被忽略了?? 我做错了什么?
logback.xml :
<configuration debug="true">
<shutdownHook/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DATA_DIR}/logs/jdtest.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${DATA_DIR}/logs/jdtest.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100KB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yy.MM.dd HH:mm:ss.SSS}:\t%logger:\t%msg%n</pattern>
<outputPatternAsHeader>true</outputPatternAsHeader>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queuesize>1000</queuesize>
<encoder>
<immediateFlush>false</immediateFlush>
</encoder>
<appender-ref ref="FILE" />
</appender>
<root level="ALL">
<appender-ref ref="ASYNC" />
</root>
</configuration>
gradle:
dependencies {
implementation 'org.slf4j:slf4j-api:1.7.30'
implementation 'com.github.tony19:logback-android:2.0.0'
}
AsyncAppender没有编码器properties.AndAsyncAppender有queueSize属性而不是queuesize。如果要使用shutdownHook,指定使用class
<configuration debug="true">
<!-- <shutdownHook/>-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${DATA_DIR}/logs/jdtest.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${DATA_DIR}/logs/jdtest.%i.log.zip</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>100KB</maxFileSize>
</triggeringPolicy>
<encoder>
<pattern>%d{yy.MM.dd HH:mm:ss.SSS}:\t%logger:\t%msg%n</pattern>
<outputPatternAsHeader>true</outputPatternAsHeader>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<queueSize>1000</queueSize>
<!-- <encoder>-->
<!-- <immediateFlush>false</immediateFlush>-->
<!-- </encoder>-->
<appender-ref ref="FILE" />
</appender>
<root level="ALL">
<appender-ref ref="ASYNC" />
</root>
</configuration>