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

com.yy.httpproxy.AndroidLoggingHandler Maven / Gradle / Ivy

There is a newer version: 1.0.45
Show newest version
package com.yy.httpproxy;

import android.util.Log;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.LogRecord;
import java.util.logging.Logger;

public class AndroidLoggingHandler extends Handler {

        public static void reset(Handler rootHandler) {
            Logger rootLogger = LogManager.getLogManager().getLogger("");
            Handler[] handlers = rootLogger.getHandlers();
            for (Handler handler : handlers) {
                rootLogger.removeHandler(handler);
            }
            LogManager.getLogManager().getLogger("").addHandler(rootHandler);
        }

        @Override
        public void close() {
        }

        @Override
        public void flush() {
        }

        @Override
        public void publish(LogRecord record) {
            if (!super.isLoggable(record))
                return;

            String name = record.getLoggerName();
            int maxLength = 30;
            String tag = name.length() > maxLength ? name.substring(name.length() - maxLength) : name;

            try {
                int level = getAndroidLevel(record.getLevel());
                Log.println(level, tag, record.getMessage());
                if (record.getThrown() != null) {
                    Log.println(level, tag, Log.getStackTraceString(record.getThrown()));
                }
            } catch (RuntimeException e) {
                Log.e("AndroidLoggingHandler", "Error logging message.", e);
            }
        }

        static int getAndroidLevel(Level level) {
            int value = level.intValue();
            if (value >= 1000) {
                return Log.ERROR;
            } else if (value >= 900) {
                return Log.WARN;
            } else if (value >= 800) {
                return Log.INFO;
            } else {
                return Log.DEBUG;
            }
        }
    }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy