Android自定义日志输出文件
来源:互联网 发布:java用for循环打印菱形 编辑:程序博客网 时间:2024/06/04 01:13
import java.util.Hashtable;import android.util.Log;/** * The class for print log * @author kesenhoo * */ //使用//private MyLogger logger = MyLogger.kLog();//logger.d("This is kesen log [02]"); public class MyLogger { private final static boolean logFlag = true; public final static String tag = "[AppName]"; private final static int logLevel = Log.VERBOSE; private static Hashtable<String, MyLogger> sLoggerTable = new Hashtable<String, MyLogger>(); private String mClassName; //不同开发人员的日志使用对象 private static MyLogger jlog; private static MyLogger klog; //开发人员的名字 private static final String JAMES = "@james@ "; private static final String KESEN = "@kesen@ "; private MyLogger(String name) { mClassName = name; } /** * * @param className * @return */ @SuppressWarnings("unused") private static MyLogger getLogger(String className) { MyLogger classLogger = (MyLogger) sLoggerTable.get(className); if(classLogger == null) { classLogger = new MyLogger(className); sLoggerTable.put(className, classLogger); } return classLogger; } /** * Purpose:Mark user one * @return */ public static MyLogger kLog() { if(klog == null) { klog = new MyLogger(KESEN); } return klog; } /** * Purpose:Mark user two * @return */ public static MyLogger jLog() { if(jlog == null) { jlog = new MyLogger(JAMES); } return jlog; } /** * Get The Current Function Name * @return */ private String getFunctionName() { StackTraceElement[] sts = Thread.currentThread().getStackTrace(); if(sts == null) { return null; } for(StackTraceElement st : sts) { if(st.isNativeMethod()) { continue; } if(st.getClassName().equals(Thread.class.getName())) { continue; } if(st.getClassName().equals(this.getClass().getName())) { continue; } return mClassName + "[ " + Thread.currentThread().getName() + ": " + st.getFileName() + ":" + st.getLineNumber() + " " + st.getMethodName() + " ]"; } return null; } /** * The Log Level:i * @param str */ public void i(Object str) { if(logFlag) { if(logLevel <= Log.INFO) { String name = getFunctionName(); if(name != null) { Log.i(tag, name + " - " + str); } else { Log.i(tag, str.toString()); } } } } /** * The Log Level:d * @param str */ public void d(Object str) { if(logFlag) { if(logLevel <= Log.DEBUG) { String name = getFunctionName(); if(name != null) { Log.d(tag, name + " - " + str); } else { Log.d(tag, str.toString()); } } } } /** * The Log Level:V * @param str */ public void v(Object str) { if(logFlag) { if(logLevel <= Log.VERBOSE) { String name = getFunctionName(); if(name != null) { Log.v(tag, name + " - " + str); } else { Log.v(tag, str.toString()); } } } } /** * The Log Level:w * @param str */ public void w(Object str) { if(logFlag) { if(logLevel <= Log.WARN) { String name = getFunctionName(); if(name != null) { Log.w(tag, name + " - " + str); } else { Log.w(tag, str.toString()); } } } } /** * The Log Level:e * @param str */ public void e(Object str) { if(logFlag) { if(logLevel <= Log.ERROR) { String name = getFunctionName(); if(name != null) { Log.e(tag, name + " - " + str); } else { Log.e(tag, str.toString()); } } } } /** * The Log Level:e * @param ex */ public void e(Exception ex) { if(logFlag) { if(logLevel <= Log.ERROR) { Log.e(tag, "error", ex); } } } /** * The Log Level:e * @param log * @param tr */ public void e(String log, Throwable tr) { if(logFlag) { String line = getFunctionName(); Log.e(tag, "{Thread:" + Thread.currentThread().getName() + "}" + "[" + mClassName + line + ":] " + log + "\n", tr); } } }
0 0
- Android自定义日志输出文件
- Java自定义日志输出文件
- android 日志文件输出
- android log日志文件输出
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- PHP自定义输出日志到文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- log4j输出多个自定义日志文件
- 自定义Android日志输出工具类
- Android中LogCat输出日志的自定义
- Android日志输出到文件方法
- Android log日志输出到文件
- 2015阿里java研发实习电话面试回忆
- hdu1021
- freecms如何在信息列表类标签中提取info.content
- vc中调用Com组件的方法详解
- python
- Android自定义日志输出文件
- 3月14日
- http://blog.chinaunix.net/uid-21222282-id-3244532.html
- 【经验】- IOS开发学习提高方法论①
- 给喜欢计算机的学弟学妹们的12条建议
- android开发-2操作系统安装
- java多线程竞争
- 1042. Shuffling Machine (20)
- Java基础视频教程第02天_学习笔记之语法基础