Google源码 -- 打Log新技巧

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 最近,开始阅读 Google 源码,看看大牛们写的代码哪些是写的好的,可以借鉴到自己的项目下。我发现谷歌工程师在打Log日志,都是统一的写法。今天,就先来分享一下他们的日志代码是怎么写的 。
导语

最近,开始阅读 Google 源码,看看大牛们写的代码哪些是写的好的,可以借鉴到自己的项目下。我发现谷歌工程师在打Log日志,都是统一的写法。今天,就先来分享一下他们的日志代码是怎么写的 。


1先上源码

package com.android.music;
    import android.os.Debug;
    public class MusicLog {    
      private static final boolean DEBUG = true;    
      public static void v(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.v(tag, msg);
        }
    }    
       public static void v(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.v(tag, msg, tr);
        }
    }    
       public static void d(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.d(tag, msg);
        }
    }    
       public static void d(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.d(tag, msg, tr);
        }
    }    
       public static void i(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.i(tag, msg);
        }
    }    
       public static void i(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.i(tag, msg, tr);
        }
    }    
       public static void w(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.w(tag, msg);
        }
    }    
       public static void w(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.w(tag, msg, tr);
        }
    }    
       public static void w(String tag, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.w(tag, tr);
        }
    }    
       public static void e(String tag, String msg) {        
       if(DEBUG) {
            android.util.Log.e(tag, msg);
        }
    }    
       public static void e(String tag, String msg, Throwable tr) {        
       if(DEBUG) {
            android.util.Log.e(tag, msg, tr);
        }
    }
}

2如何使用

private static final String LOGTAG = "LyricListView";
MusicLog.d(LOGTAG, "mAdapter.getCount = " + mAdapter.getCount());
MusicLog.e(LOGTAG, "SET LYRIC ERROR:" + e.getMessage());

3分析这样写的好处


上面代码,我们通过  private static final boolean DEBUG = true ; 我们可以统一的控制 log 的输出和关闭。如果采用这种方式打印日志信息,我们就可以在 debug 的版本中输出 log,而在 release 版本中关闭 log 的输出 。这样防止自己的软件信息被泄露出去 。而且,如果采用这种方式,是不是会觉得代码的打印日志信息的格式更简单更美观更统一呢。现在得到了个打印 Log 新技能,还不赶紧用到自己项目上去吗?


4总结


今天的 Google 源码阅读,先讲这个简单又实用的打印 Log 日志方法,我个人感觉是挺好用的 。下次继续分享优秀源码,欢迎继续关注本公众号。

本文属于原创,如有转载,请标注原作者,版权归本公众号所有。如果你喜欢我写的文章请关注 程序IT圈  ,欢迎大家继续关注本公众号的技术博文。如果您觉得这篇文章对你有所帮助的话,不妨点个赞或给个赞赏哈,您的支持就是我坚持原创的动力~~

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
8月前
|
消息中间件 分布式计算 Kafka
亿万级别Kafka演进之路:可靠性+事务+消息中间件+源码+日志
Kafka起初是由LinkedIn公司采用Scala语言开发的-一个多分区、多副本且基于ZooKeeper协调的分布式消息系统,现已被捐献给Apache基金会。目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。
|
7月前
spdlog 日志库部分源码说明——让你可以自定义的指定自动切换日志时间
spdlog 日志库部分源码说明——让你可以自定义的指定自动切换日志时间
203 7
|
7月前
|
C++
spdlog 日志库部分源码说明——日志格式设定,DIY你自己喜欢的调试信息,你能调试的远比你想象的还要丰富
spdlog 日志库部分源码说明——日志格式设定,DIY你自己喜欢的调试信息,你能调试的远比你想象的还要丰富
442 6
|
8月前
|
前端开发
muduo源码剖析之AsyncLogging异步日志类
AsyncLogging是muduo的日志,程序如果直接让文件写日志可能会发生阻塞,muduo前端设计了2个BufferPtr,分别是currentBuffer_和nextBuffer_,还有一个存放BufferPtr的vector(buffers_)。多个前端线程往currentBuffer_写数据,currentBuffer_写满了将其放入buffers_,通知后端线程读。前端线程将currentBuffer_和nextBuffer_替换继续写currentBuffer_。
90 0
|
7月前
|
监控 Java Spring
自定义注解+AOP切面日志+源码
自定义注解+AOP切面日志+源码
56 1
|
7月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的公司员工工作日志办公系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的公司员工工作日志办公系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
8月前
|
Web App开发
QQ个性网空间日志网站模板源码
QQ个性空间日志新闻资讯网站模板分享bokequ
71 1
|
8月前
|
JavaScript Java 测试技术
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的公司员工工作日志办公系统的设计与实现(源码+lw+部署文档+讲解等)
235 3
|
8月前
|
消息中间件 大数据 Apache
【云计算与大数据技术】流计算讲解及集群日志文件实时分析实战(附源码)
【云计算与大数据技术】流计算讲解及集群日志文件实时分析实战(附源码)
134 1
|
8月前
|
SQL druid Java
三步实现maven工程集成logback日志框架(日志按天滚动生成文件)并附源码
三步实现maven工程集成logback日志框架(日志按天滚动生成文件)并附源码
310 0

热门文章

最新文章