一个好用的Log管理类
- public class L {
- private static String className; //所在的类名
- private static String methodName; //所在的方法名
- private static int lineNumber; //所在行号
- public static final int VERBOSE = 1; //显示Verbose及以上的Log
- public static final int DEBUG = 2; //显示Debug及以上的Log
- public static final int INFO = 3; //显示Info及以上的Log
- public static final int WARN = 4; //显示Warn及以上的Log
- public static final int ERROR = 5; //显示Error及以上的Log
- public static final int NOTHING = 6; //全部不显示
- public static final int LEVEL = NOTHING; //控制显示的级别
- private L() {
- }
- public static boolean isDebuggable() {
- return BuildConfig.DEBUG;
- }
- private static String createLog(String log) {
- StringBuffer buffer = new StringBuffer();
- buffer.append("[");
- buffer.append(methodName);
- buffer.append(":");
- buffer.append(lineNumber);
- buffer.append("]");
- buffer.append(log);
- return buffer.toString();
- }
- private static void getMethodNames(StackTraceElement[] sElements) {
- className = sElements[1].getFileName();
- methodName = sElements[1].getMethodName();
- lineNumber = sElements[1].getLineNumber();
- }
- public static void v(String message) {
- if (!isDebuggable()) {
- return;
- }
- if (LEVEL <= VERBOSE) {
- getMethodNames(new Throwable().getStackTrace());
- Log.v(className, createLog(message));
- }
- }
- public static void d(String message) {
- if (!isDebuggable()) {
- return;
- }
- if (LEVEL <= DEBUG) {
- getMethodNames(new Throwable().getStackTrace());
- Log.d(className, createLog(message));
- }
- }
- public static void i(String message) {
- if (!isDebuggable()) {
- return;
- }
- if (LEVEL <= INFO) {
- getMethodNames(new Throwable().getStackTrace());
- Log.i(className, createLog(message));
- }
- }
- public static void w(String message) {
- if (!isDebuggable()) {
- return;
- }
- if (LEVEL <= WARN) {
- getMethodNames(new Throwable().getStackTrace());
- Log.w(className, createLog(message));
- }
- }
- public static void e(String message) {
- if (!isDebuggable()) {
- return;
- }
- if (LEVEL <= ERROR) {
- getMethodNames(new Throwable().getStackTrace());
- Log.e(className, createLog(message));
- }
- }
- }
原文地址:http://www.devwiki.net/2015/06/24/Android-New-Log/
一个好用的Log管理类的更多相关文章
- XMPP得知--建立一个管理类
参考其他demo之后,设立一个管理类的发现看起来更舒服,理-- 但在建立与server连接其中.发现 Connect Error: { NSLocalizedDescription = &qu ...
- 控制uniFrame显示的一个管理类
控制uniFrame显示的一个管理类 (2016-03-29 06:41:17) 转载▼ 标签: delphi 分类: uniGUI 利用uniGUI Frame的机制来搭建项目,是非常好的实现方式, ...
- Android 性能优化(16)线程优化:Creating a Manager for Multiple Threads 如何创建一个线程池管理类
Creating a Manager for Multiple Threads 1.You should also read Processes and Threads The previous le ...
- Log统一管理类
import android.util.Log; /** * Log统一管理类 */ public class L{ private L(){ /* cannot be instantiated */ ...
- Android log 管理工具
1.logger 项目地址: https://github.com/orhanobut/logger 2.KLog 项目地址:https://github.com/ZhaoKaiQiang/KLog ...
- [Canvas]空战游戏进阶 增加己方子弹管理类
点此下载源码,可用Chrome打开观看. 图例: 代码: <!DOCTYPE html> <html lang="utf-8"> <meta http ...
- 160803、如何在ES6中管理类的私有数据
如何在ES6中管理类的私有数据?本文为你介绍四种方法: 在类的构造函数作用域中处理私有数据成员 遵照命名约定(例如前置下划线)标记私有属性 将私有数据保存在WeakMap中 使用Symbol作为私有属 ...
- Android学习笔记_64_手机安全卫士知识点归纳(4) 流量统计 Log管理 混淆打包 加入广告 自动化测试 bug管理
android 其实就是linux 上面包装了一个java的框架. linux 系统下 所有的硬件,设备(网卡,显卡等) 都是以文件的方式来表示. 文件里面包含的有很多设备的状态信息. 所有的流量相关 ...
- Android wifi管理类:WifiAdmin
1.wifi的五种状态: WIFI_STATE_DISABLED WIFI网卡不可用 WIFI_STATE_DISABLING WIFI网卡正在关闭 WIFI_STATE_ENABLED ...
随机推荐
- closeChrome
function closeChrome(){ var browserName=navigator.appName; if (browserName=="Netscape") { ...
- Debugger Exception Notification
--------------------------- Debugger Exception Notification --------------------------- Project PJSP ...
- 【STL】-priority_queue的用法
初始化: priority_queue<int> maxPQ; priority_queue<int,vector<int& ...
- 11个Linux基础面试问题
Q.1: Linux 操作系统的核心是什么? Shell Kernel Command Script Terminal 答: 内核(Kernel)是Linux 操作系统的核心.Shell是一个命令行解 ...
- 端午小长假--前端基础学起来04CSS选择器
定义: 选择器{ 样式: } 选择器指明{}中的样式的作用对象,即作用于网页中的哪些元素 <head><meta http-equiv="Content-Type" ...
- SharePoint安全 - 攻破SharePoint(黑客工具介绍)
博客地址 http://blog.csdn.net/foxdave SharePoint的安全性很高,这是我们潜意识里的第一印象,所以具体的安全性体现在哪并没仔细研究过.但是事实上确实没有绝对安全的东 ...
- IOS中nil/Nil/NULL的区别
类与对象的概念 类是对同一类事物高度的抽象,类中定义了这一类对象所应具有的静态属性(属性)和动态属性(方法). 对象是类的一个实例,是一个具体的事物. 类与对象是抽象与具体的关系. 类其实就是一种数据 ...
- 在C,C++,JAVA中int,char,各占几个字节
int 在C和C++的占用2个字节,在java中4个字节char在C和C+中占一个字节 Java中无论是汉字还是英文字母都是用Unicode编码来表示的,一个Unicode码是16位,每字节是8位,所 ...
- Html.ActionLink , Url.Action
也来总结一下 以后省的忘了 都是从controller中获取到action名字返回 html.actionlink 返回的是带<a> 标签的超链接 url.action 是返回正常cont ...
- JVM值内存垃圾回收监控之jstat
如何判断JVM垃圾回收是否正常?一般的top指令基本上满足不了这样的需求,因为top主要监控的是总体的系统资源,很难定位到java应用程序. Jstat是JDK自带的一个轻量级小工具.全称“Java ...