博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
log日志应用 自定义的log
阅读量:6991 次
发布时间:2019-06-27

本文共 5372 字,大约阅读时间需要 17 分钟。

package com.kxd.utils;import java.util.Hashtable;import android.util.Log;/** * The class for print log *  */public class MyLogger {    private final static boolean logFlag = true; // 调试模式 true 上线模式 false    public final static String tag = "远程银行";// 日志打印 tag    private final static int logLevel = Log.VERBOSE; // 日志级别    // 集合    private static Hashtable
sLoggerTable = new Hashtable
(); private String mClassName; // 不同开发人员的日志使用对象 private static MyLogger djyLog; // 开发人员的名字 private static final String DJY = "djy"; 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 djy * * @return */ public static MyLogger getDJYLog() { if (djyLog == null) { djyLog = new MyLogger(DJY); } return djyLog; } /** * 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()) { // 本地方法native jni 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 * * log等级: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:i * * log等级:i * * @param str */ public void i(String tag, 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 * * log等级: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 * * log等级: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 * * log等级: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 * * log等级: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 * * log等级:e * * @param ex */ public void e(Exception ex) { if (logFlag) { if (logLevel <= Log.ERROR) { Log.e(tag, "error", ex); } } } /** * The Log Level:e * * log等级: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); } }}

 

转载于:https://www.cnblogs.com/fengchuxiaodai/p/5841567.html

你可能感兴趣的文章
“两只小熊队”Alpha版本展示博客
查看>>
创建django的不同环境
查看>>
Top 10 command-line commands for managing Windows 7 desktops
查看>>
CentOS5.4安装samba服务
查看>>
学习笔记之简单工厂设计模式
查看>>
Spring+SpringMVC+MyBatis+Maven框架整合
查看>>
MFC读写文件
查看>>
linux优化
查看>>
手动制作mini linux详细步骤—之一
查看>>
kali密码离线破解
查看>>
Bootstrap优秀模板-Unify.2.6.2
查看>>
poj 3122 Pie (二分)
查看>>
在面试中如何展示虚拟机和内存调优技能
查看>>
C++命名空间学习笔记
查看>>
购物商城Web开发第五天
查看>>
剑指Offer第36题—Java版
查看>>
txt 简单操作
查看>>
jquery $(document).ready() 与window.onload的区别
查看>>
解决Android中,禁止ScrollView内的控件改变之后自动滚动
查看>>
Windows Phone 使用FlurrySdk
查看>>