运维APP增加日志
parent
7617e505cb
commit
eaf76e9f7d
@ -0,0 +1,57 @@
|
||||
package com.xypower.mpmaster;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.io.StringWriter;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.logging.ConsoleHandler;
|
||||
import java.util.logging.Formatter;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
|
||||
public class LogFormatter extends Formatter {
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
static String getLevelName(Level level) {
|
||||
int levelInt = level.intValue();
|
||||
if (levelInt >= 1000) {
|
||||
return "E";
|
||||
} else if (levelInt >= 900) {
|
||||
return "W";
|
||||
} else if (levelInt >= 700) {
|
||||
return "I";
|
||||
} else if (levelInt >= 500) {
|
||||
return "D";
|
||||
} else {
|
||||
return "V";
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String format(LogRecord record) {
|
||||
String message = formatMessage(record);
|
||||
return String.format(sdf.format(new Date(record.getMillis())) + " [%s] %s\n",
|
||||
// ecord.
|
||||
getLevelName(record.getLevel()), message);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将{@link LogFormatter}实例指定为{@link Logger}的输出格式
|
||||
* @param logger
|
||||
* @return always logger
|
||||
*/
|
||||
public static Logger installFormatter(Logger logger){
|
||||
if(null != logger){
|
||||
/** 禁用原输出handler,否则会输出两次 */
|
||||
logger.setUseParentHandlers(false);
|
||||
ConsoleHandler consoleHandler = new ConsoleHandler();
|
||||
consoleHandler.setFormatter(new LogFormatter());
|
||||
logger.addHandler(consoleHandler);
|
||||
}
|
||||
return logger;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package com.xypower.mpmaster;
|
||||
|
||||
import android.util.Log;
|
||||
import java.util.logging.Handler;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.LogRecord;
|
||||
|
||||
public class LogcatHandler extends Handler {
|
||||
|
||||
private static final int TAG_MAX_LENGTH = 23;
|
||||
|
||||
static String getLevelName(int level) {
|
||||
switch (level) {
|
||||
case 1:
|
||||
return "VERY VERBOSE";
|
||||
case Log.VERBOSE:
|
||||
return "VERBOSE";
|
||||
case Log.DEBUG:
|
||||
return "DEBUG";
|
||||
case Log.INFO:
|
||||
return "INFO";
|
||||
case Log.WARN:
|
||||
return "WARN";
|
||||
case Log.ERROR:
|
||||
return "ERROR";
|
||||
case Log.ASSERT:
|
||||
return "ASSERT";
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
}
|
||||
|
||||
static int levelFromLevel(Level level) {
|
||||
int levelInt = level.intValue();
|
||||
if (levelInt >= 1000) {
|
||||
return Log.ERROR;
|
||||
} else if (levelInt >= 900) {
|
||||
return Log.WARN;
|
||||
} else if (levelInt >= 700) {
|
||||
return Log.INFO;
|
||||
} else if (levelInt >= 500) {
|
||||
return Log.DEBUG;
|
||||
} else {
|
||||
return Log.VERBOSE;
|
||||
}
|
||||
}
|
||||
|
||||
static Level levelFromLevel(int level) {
|
||||
switch (level) {
|
||||
case 1:
|
||||
return Level.FINEST;
|
||||
case Log.VERBOSE:
|
||||
return Level.FINER;
|
||||
case Log.DEBUG:
|
||||
return Level.FINE;
|
||||
case Log.INFO:
|
||||
return Level.INFO;
|
||||
case Log.WARN:
|
||||
return Level.WARNING;
|
||||
case Log.ERROR:
|
||||
return Level.SEVERE;
|
||||
case Log.ASSERT:
|
||||
return Level.SEVERE;
|
||||
default:
|
||||
return Level.FINE;
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void publish(LogRecord record) {
|
||||
if (record == null || !super.isLoggable(record)) {
|
||||
return;
|
||||
}
|
||||
|
||||
String tag = tagFromLoggerName(record.getLoggerName());
|
||||
|
||||
int level = levelFromLevel(record.getLevel());
|
||||
|
||||
Log.println(level, tag, record.getMessage());
|
||||
if (record.getThrown() != null) {
|
||||
Log.println(level, tag, Log.getStackTraceString(record.getThrown()));
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void flush() {}
|
||||
|
||||
@Override public void close() throws SecurityException {}
|
||||
|
||||
private String tagFromLoggerName(String name) {
|
||||
if (name == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (name.length() > TAG_MAX_LENGTH) {
|
||||
return name.substring(name.length() - TAG_MAX_LENGTH, name.length());
|
||||
} else {
|
||||
return name;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue