Logback-android: не записывать файл в файл

Попытка перенаправить сообщения журнала с помощью logback-android, чтобы сообщения могли быть сохранены в файле. Однако он не сохраняется в файле.

Это моя конфигурация файла logback.xml, которая хранится в src / main / assets в моей Android Studio

<configuration debug="true"> <!-- Create a file appender for a log in the application's data directory --> <appender name="FILE" class="ch.qos.logback.classic.android.FileAppender"> <file>/data/com.test.equa/files/log/foo.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- Write INFO (and higher-level) messages to the log file --> <root level="INFO"> <appender-ref ref="FILE" /> </root> </configuration> 

Это фрагмент кода, в котором я запускаю ведение журнала.

  @Override public void onCreate() { super.onCreate(); loadData(); Logger log = LoggerFactory.getLogger(MyActivity.class); log.error("Application Data setup in progress"); } 

Проблема. Я продолжаю видеть сообщения в logcat, но я ожидаю, что они будут сохранены в моей памяти sd-карты Android.

Добавлено пользовательское разрешение в манифесте для записи журналов на SD-карте

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Я пропустил некоторые вещи в этой конфигурации, так как я не вижу никаких ошибок или сообщений в моем logcat для любых ошибок конфигурации. Может кто-нибудь мне помочь здесь

Вы пытались добавить конфигурацию в AndroidManifest.xml?

Пример манифеста (из этой ссылки ):

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <logback> <configuration> <appender name="LOGCAT" class="ch.qos.logback.classic.android.LogcatAppender" > <tagEncoder> <pattern>%logger{0}</pattern> </tagEncoder> <encoder> <pattern>[ %thread ] %msg%n</pattern> </encoder> </appender> <root level="WARN" > <appender-ref ref="LOGCAT" /> </root> </configuration> </logback> </manifest> 

Для Android 6+ Вы должны определить разрешения вручную в настройках вашего приложения. В противном случае logback не будет разрешен для записи на внешнее хранилище, даже если вы предоставите разрешение WRITE_EXTERNAL_STORAGE в файле manifest.xml.

Я принял решение отсюда .