Logback for Android을 사용하여 외부 저장소 파일에 내 앱 로그를 기록합니다. 내 앱이 Android M에서 실행 중이므로 사용자에게 해당 파일에 쓰기 권한 (WRITE_EXTERNAL_STORAGE)을 요청해야합니다. 응용 프로그램이 실행될 때Logback이 구성을로드하고 로그 파일을 생성하기 전에 사용 권한 요청
그러나, Logback은 사용자가 해당에 대한 권한을 부여하기 전에 그것은을 발생하므로, (가 /sdcard/logback/myapp
디렉토리에 위치하고,이 경우) 설정 파일 (src/main/assets/logback.xml
)을 읽고 로그 파일을 만들려고 권한 거부 오류.
로깅 구성을로드 할 때 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. 나는 그것을 할 것이다. 나는 잠정적 인 해결책 –