我使用Logback for Android将我的应用程序的日志写入外部存储文件。我的应用程序正在Android M中执行,因此我需要向用户请求写入该文件的权限(WRITE_EXTERNAL_STORAGE)。Logback加载配置(并创建日志文件)之前的请求权限
然而,当应用程序启动时,的logback读取配置文件(src/main/assets/logback.xml
),并尝试创建日志文件(在这种情况下,它位于/sdcard/logback/myapp
目录),用户给予该许可之前,所以它抛出一个权限被拒绝错误。
有什么办法告诉Logback何时加载日志记录配置?当用户给予权限时,我需要强制Logback“重置”配置,因此它有权创建该文件。
logback.xml
<configuration>
<property name="LOG_DIR" value="/sdcard/logback/myapp"/>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>%dateStr [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/myapp.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
</appender>
<appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender">
<encoder>
<pattern>%msg</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="FILE"/>
<appender-ref ref="LOGCAT"/>
</root>
</configuration>
我会建议你把这个问题放在他们的github问题上。 https://github.com/tony19/logback-android/issues –
谢谢@YamenNassif。我会做的。我发现临时解决方案 –