*Dlog类实现

import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.UnknownHostException;

import android.util.Log;

public class Dlog
{

    /**
     * Log 级别,设置为某个级别后,低于该级别的log将不会输出
     */
    public static final int UNKNOWN = 0;
    public static final int DEFAULT = 1;
    public static final int VERBOSE = 2;
    public static final int DEBUG = 3;
    public static final int INFO = 4;
    public static final int WARN = 5;
    public static final int ERROR = 6;
    public static final int ASSERT = 7;
    public static final int SILENT = 8;

    private static int mPriority = DEFAULT;
    private static String mTag = "Application";

    private Dlog()
    {
    }

    public static void setTag(String tag)
    {
        mTag = tag;
    }

    public static int v(String tag, String msg)
    {
        return println(VERBOSE, tag, msg);
    }

    public static int v(String msg)
    {
        return println(VERBOSE, mTag, msg);
    }

    public static int v(String tag, String msg, Throwable tr)
    {
        return println(VERBOSE, tag, msg + ‘\n‘ + getStackTraceString(tr));
    }

    public static int v(String msg, Throwable tr)
    {
        return println(VERBOSE, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int v(String tag, String format, Object... args)
    {
        return println(VERBOSE, tag, format(format, args));
    }

    public static int v(String format, Object... args)
    {
        return println(VERBOSE, mTag, format(format, args));
    }

    public static int d(String tag, String msg)
    {
        return println(DEBUG, tag, msg);
    }

    public static int d(String msg)
    {
        return println(DEBUG, mTag, msg);
    }

    public static int d(String tag, String msg, Throwable tr)
    {
        return println(DEBUG, tag, msg + ‘\n‘ + getStackTraceString(tr));
    }

    public static int d(String msg, Throwable tr)
    {
        return println(DEBUG, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int d(String tag, String format, Object... args)
    {
        return println(DEBUG, tag, format(format, args));
    }

    public static int d(String format, Object... args)
    {
        return println(DEBUG, mTag, format(format, args));
    }

    public static int i(String tag, String msg)
    {
        return println(INFO, tag, msg);
    }

    public static int i(String msg)
    {
        return println(INFO, mTag, msg);
    }

    public static int i(String tag, String msg, Throwable tr)
    {
        return println(INFO, tag, msg + "\n" + getStackTraceString(tr));
    }

    public static int i(String msg, Throwable tr)
    {
        return println(INFO, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int i(String tag, String format, Object... args)
    {
        return println(INFO, tag, format(format, args));
    }

    public static int i(String format, Object... args)
    {
        return println(INFO, mTag, format(format, args));
    }

    public static int w(String tag, String msg)
    {
        return println(WARN, tag, msg);
    }

    public static int w(String msg)
    {
        return println(WARN, mTag, msg);
    }

    public static int w(String tag, String msg, Throwable tr)
    {
        return println(WARN, tag, msg + "\n" + getStackTraceString(tr));
    }

    public static int w(String msg, Throwable tr)
    {
        return println(WARN, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int w(String tag, String format, Object... args)
    {
        return println(WARN, tag, format(format, args));
    }

    public static int w(String format, Object... args)
    {
        return println(WARN, mTag, format(format, args));
    }

    public static int e(String tag, String msg)
    {
        return println(ERROR, tag, msg);
    }

    public static int e(String msg)
    {
        return println(ERROR, mTag, msg);
    }

    public static int e(String tag, String msg, Throwable tr)
    {
        return println(ERROR, tag, msg + "\n" + getStackTraceString(tr));
    }

    public static int e(String msg, Throwable tr)
    {
        return println(ERROR, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int e(String tag, String format, Object... args)
    {
        return println(ERROR, tag, format(format, args));
    }

    public static int e(String format, Object... args)
    {
        return println(ERROR, mTag, format(format, args));
    }

    public static int a(String tag, String msg)
    {
        return println(ASSERT, tag, msg);
    }

    public static int a(String msg)
    {
        return println(ASSERT, mTag, msg);
    }

    public static int a(String tag, String msg, Throwable tr)
    {
        return println(ASSERT, tag, msg + "\n" + getStackTraceString(tr));
    }

    public static int a(String msg, Throwable tr)
    {
        return println(ASSERT, mTag, msg + "\n" + getStackTraceString(tr));
    }

    public static int a(String tag, String format, Object... args)
    {
        return println(ASSERT, tag, format(format, args));
    }

    public static int a(String format, Object... args)
    {
        return println(ASSERT, mTag, format(format, args));
    }

    public static int wtf(String msg)
    {
        return Log.wtf(mTag, msg, null);
    }

    public static int wtf(String tag, String msg)
    {
        return Log.wtf(tag, msg, null);
    }

    public static int wtf(String tag, Throwable tr)
    {
        return Log.wtf(tag, tr.getMessage(), tr);
    }

    public static int wtf(String tag, String msg, Throwable tr)
    {
        return Log.wtf(tag, msg, tr);
    }

    public static String getStackTraceString(Throwable tr)
    {
        if (tr == null)
        {
            return "";
        }

        // This is to reduce the amount of log spew that apps do in the
        // non-error
        // condition of the network being unavailable.
        Throwable t = tr;
        while (t != null)
        {
            if (t instanceof UnknownHostException)
            {
                return "";
            }
            t = t.getCause();
        }

        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        tr.printStackTrace(pw);
        return sw.toString();
    }

    public static int setPriority(int priority)
    {
        int prePriority = mPriority;
        mPriority = priority;
        return prePriority;
    }

    public static int getPriority()
    {
        return mPriority;
    }

    public static boolean isLoggable(String tag, int level)
    {
        return Log.isLoggable(tag, level);
    }

    public static int println(int priority, String tag, String msg)
    {
        if (priority < mPriority)
            return 0;
        // 需要导入framework包以支持hide api,println_native为本地方法,效率比println高
        return Log.println_native(Log.LOG_ID_MAIN, priority, tag, msg);
        // return Log.println(priority, tag, msg);
    }

    private static String format(String format, Object... args)
    {
        try
        {
            return String.format(format, args);
        } catch (Exception e)
        {
            return "";
        }
    }
}
时间: 2024-08-08 22:06:35

*Dlog类实现的相关文章

神经网络caffe框架源码解析--data_layer.cpp类代码研究

dataLayer作为整个网络的输入层, 数据从leveldb中取.leveldb的数据是通过图片转换过来的. 网络建立的时候, datalayer主要是负责设置一些参数,比如batchsize,channels,height,width等. 这次会通过读leveldb一个数据块来获取这些信息. 然后启动一个线程来预先从leveldb拉取一批数据,这些数据是图像数据和图像标签. 正向传播的时候, datalayer就把预先拉取好数据拷贝到指定的cpu或者gpu的内存. 然后启动新线程再预先拉取数

DLog的使用

DLog的使用 2013-05-12 08:24:22|  分类: iOS |  标签:objectivec  dlog  |举报|字号 订阅 Objective C中NSLog虽然使用方便,但是有时候NSLog并不能满足程序员调试程序的全部需求.比如打印的结果位于哪个类中?是在哪个类中打印的?或者具体是在哪行打印的等等.所以对于程序员来说急切需要可以满足上述要求的Log方法.DLog就可以完全替代NSLog,并且满足上述的需求.DLog本质上就是个宏替换,可以输出类名,方法名和行号.DLog具

[Z] 计算机类会议期刊根据引用数排名

一位cornell的教授做的计算机类期刊会议依据Microsoft Research引用数的排名 link:http://www.cs.cornell.edu/andru/csconf.html The following are the journals and conferences in computer science that have published at least 100 papers (2003–2013), with at least 5 citations per pa

Caffe源码-Net类(下)

net.cpp部分源码 // 接着上一篇博客的介绍,此部分为Net类中前向反向计算函数,以及一些与HDF5文件或proto文件相互转换的函数. template <typename Dtype> Dtype Net<Dtype>::ForwardFromTo(int start, int end) { //执行第start层到第end层的前向计算过程 CHECK_GE(start, 0); //检查start >= 0, end < 总层数 CHECK_LT(end,

Caffe源码-DataTransformer类

DataTransformer类简介 DataTransformer类中主要用于图像预处理操作,layer中可设置TransformationParameter类型的消息来对输入图像进行减均值.随机镜像.随机裁剪或缩放.DataTransformer类中主要包含重载函数Transform(),可以对各种类型的图像数据进行预处理,并存入到Blob类型的数据中.类中还包含了以下变量. TransformationParameter param_; //预处理参数 shared_ptr<Caffe::

jvm系列(一):java类的加载机制

java类的加载机制 原文:http://www.cnblogs.com/ityouknow/p/5603287.html 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构.类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口. 类加载器并不需要等到某个

iOS -- SKSpriteNode类

SKSpriteNode类 继承自 SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKSpriteNode.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开发技术

iOS -- SKScene类

SKScene类 继承自 SKEffectNode:SKNode:UIResponder:NSObject 符合 NSCoding(SKNode)NSCopying(SKNode)NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKScene.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开

iOS -- SKPhysicsWorld类

SKPhysicsWorld类 继承自 NSObject 符合 NSCodingNSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framework 可用性 可用于iOS 7.0或者更晚的版本 声明于 SKPhysicsWorld.h 参考指南 Sprite Kit Progamming Guide 概览 重要提示:这是一个初步的API或者开发技术文档.虽然已经审阅了本文档的技术准确性,但是它不是最终的版本.本机密信息仅适用于