All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.jodamob.android.logging.FileLogger Maven / Gradle / Ivy

package de.jodamob.android.logging;

import java.io.File;
import java.util.logging.Logger;
import android.content.Context;

public class FileLogger extends RedirectedLogging {

    static final String FOLDER_NAME = "logs";
    static final String FILE_PATTERN = "applog";
    static final String FILE_EXTENSION = ".log";
    
    private final FileLoggerPreparation fileCreator;
    private final Logger logger = Logger.getLogger("");

    public FileLogger(Context context) {
        this(context, new SilentLogger());
    }
    
    public static File getLogFileContent(Context context) {
        return new FileLoggerCollector(context).getAsSingleLogfile();
    }
    
    public FileLogger(final Context context, final Logging redirectLog) {
        super(redirectLog);
        this.fileCreator = new FileLoggerPreparation(context);
        prepareInBackground();
    }

    @Override
    public int i(String tag, String message) {
        logger.info(message);
        return super.i(tag, message);
    }

    @Override
    public  int i(String tag, String message, Throwable tr) {
        logger.info(message + Log.getStackTraceString(tr));
        return super.i(tag, message, tr);
    }

    @Override
    public  int w(String tag, String message) {
        logger.warning(message);
        return super.w(tag, message);
    }

    @Override
    public  int w(String tag, String message, Throwable tr) {
        logger.warning(message + Log.getStackTraceString(tr));
        return super.w(tag, message, tr);
    }

    @Override
    public  int w(String tag, Throwable tr) {
        logger.warning(tag + Log.getStackTraceString(tr));
        return super.w(tag, tr);
    }

    @Override
    public  int e(String tag, String message) {
        logger.severe(message);
        return super.e(tag, message);
    }

    @Override
    public  int e(String tag, String message, Throwable tr) {
        logger.severe(message + getStackTraceString(tr));
        return super.e(tag, message, tr);
    }

    @Override
    public  int e(String message) {
        logger.severe(message);
        return super.e(message);
    }

    @Override
    public  int e(String msg, Throwable tr) {
        logger.severe(msg + getStackTraceString(tr)); 
        return super.e(msg, tr);
    }

    @Override
    public  int wtf(String tag, String message, Throwable tr) {
        logger.severe(message + getStackTraceString(tr));
        return super.wtf(tag, message, tr);
    }

    @Override
    public  int wtf(String tag, Throwable tr) {
        logger.severe(tag + getStackTraceString(tr));
        return super.wtf(tag, tr);
    }

    @Override
    public  int wtf(String tag, String message) {
        logger.severe(message);
        return super.wtf(tag, message);
    }

    @Override
    public  int wtf(Throwable tr) {
        logger.severe(getStackTraceString(tr));
        return super.wtf(tr);
    }

    @Override
    public  String getStackTraceString(Throwable tr) {
        return android.util.Log.getStackTraceString(tr);
    }
    
    private void prepareInBackground() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                fileCreator.prepare(logger);
            }
        }).start();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy