Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Logback-android: Log not getting writen to a file

Trying to redirect the log messages using logback-android, so that messages can be saved in a file. However, it is not getting saved into a file.

This is my logback.xml file configration, which is stored under src/main/assets in my 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> 

This is piece of code where i am initiating the logging.

 @Override
    public void onCreate() {
        super.onCreate();
        loadData();

        Logger log = LoggerFactory.getLogger(MyActivity.class);
        log.error("Application Data setup in progress");



    }

Issue: I continue to see the messages in the logcat, but i expect them to be stored in my android sd card memory.

Added the user permission in manifest for writting the logs in the sd card

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

Am i missing some thing in this configuration, as i don't see any errors or message in my logcat for any configuration errors also. Can some one help me here

like image 885
Shiv Avatar asked Jan 21 '15 04:01

Shiv


2 Answers

For Android 6+ You have to define permissions manually in settings for your application. Otherwise logback will not be allowed to write to external storage even if you grant WRITE_EXTERNAL_STORAGE permission in manifest.xml.

I took solution from here.

like image 200
LukaszTaraszka Avatar answered Oct 20 '22 00:10

LukaszTaraszka


For me it was kind of solved by the first comment of Nija on the question.

My file tag now looks like this:

<file>/sdcard/Android/data/[my-package-from-AndroidManifest]/logs.log</file>

The weird think is though, that the logs.log file appeared on my internal storage under the given path (without /sdcard/).

My phone is running Android 6.0.1 in case thats relevant.

Concluding my answer is to try the above file path and check internal storage in case the other answers don't work.

Update:

Just wanted to open the log file on the computer, but couldn't find it. I can still find it with any storage access app (e.g. file commander) on the phone itself. But when looking at exactly the same folder with the PC it's not there. So check it out with a storage access app when that's good enough for you.

like image 44
Recek Avatar answered Oct 20 '22 00:10

Recek