介绍

Android开发中Log日志打印对开发者来说是非常重要的功能。但是感觉Log写多了也是烦,每次都需要设置一个TAG过滤值和具体的打印信息,而且打印的信息也不够丰富。
这里我推荐一个功能强大的Log日志打印工具类-Logger。(不是java.util.logging.Logger,只是恰好同名而已)

使用

使用非常简单,直接调用静态类方法。提供Debug/Info/Error三个级别的打印方法。每个方法又分为两种,有参数和空参的两种。

        Logger.d();Logger.d("log message");

使用效果

有图为证。打印效果,格式说明。
默认TAG: [ 执行类:调用的方法:代码行数 ] :打印信息

打出的信息非常丰富,有方法和代码行数。方便我们定位代码。还可以在版本发布后,统一关闭日志打印功能。很好的满足了我们的开发日志打印功能。

源码及说明

代码说明

  • TAG在工具类中设置好,每个App项目都有特定的TAG。
  • 设计3个布尔值,作为用来控制打印的开关,默认ture。在版本发布后改为false就好了。
  • 每个打印,都有两个重载方法,有参无参,根据实际情况使用。
  • 最后getLocation方法,获取堆栈信息,提供打印方法和代码行功能。

源码

public final class Logger {private static final String TAG = "Demo";/*** Set true or false if you want read logs or not*/private static boolean logEnabled_d = true;private static boolean logEnabled_i = true;private static boolean logEnabled_e = true;public static void d() {if (logEnabled_d) {android.util.Log.d(TAG, getLocation());}}public static void d(String msg) {if (logEnabled_d) {android.util.Log.d(TAG, getLocation() + msg);}}public static void i(String msg) {if (logEnabled_i) {android.util.Log.i(TAG, getLocation() + msg);}}public static void i() {if (logEnabled_i) {android.util.Log.i(TAG, getLocation());}}public static void e(String msg) {if (logEnabled_e) {android.util.Log.e(TAG, getLocation() + msg);}}public static void e(String msg, Throwable e) {if (logEnabled_e) {android.util.Log.e(TAG, getLocation() + msg, e);}}public static void e(Throwable e) {if (logEnabled_e) {android.util.Log.e(TAG, getLocation(), e);}}public static void e() {if (logEnabled_e) {android.util.Log.e(TAG, getLocation());}}private static String getLocation() {final String className = Logger.class.getName();final StackTraceElement[] traces = Thread.currentThread().getStackTrace();boolean found = false;for (StackTraceElement trace : traces) {try {if (found) {if (!trace.getClassName().startsWith(className)) {Class<?> clazz = Class.forName(trace.getClassName());return "[" + getClassName(clazz) + ":"+ trace.getMethodName() + ":"+ trace.getLineNumber() + "]: ";}} else if (trace.getClassName().startsWith(className)) {found = true;}} catch (ClassNotFoundException ignored) {}}return "[]: ";}private static String getClassName(Class<?> clazz) {if (clazz != null) {if (!TextUtils.isEmpty(clazz.getSimpleName())) {return clazz.getSimpleName();}return getClassName(clazz.getEnclosingClass());}return "";}}

来源

其实这也不是我写的,只是在开发的时候发现了,分享出来。
代码来源是:Yalantis公司的开源项目中的工具类。
Yalantis公司有很多效果非常酷炫的开源项目,大家可以上github上看看。

Logger-功能强大使用方便的Log日志打印工具类相关推荐

  1. 鸿蒙harmonyOS打印Log日志工具类+看不到Log日志的问题

    鸿蒙harmonyOS打印Log日志工具类+看不到Log日志的问题 文章目录 鸿蒙harmonyOS打印Log日志工具类+看不到Log日志的问题 前言 一.使用工具类 二.封装步骤 1.鸿蒙harmo ...

  2. Android 日志打印工具类 可显示打印所在的方法和行号

    Android 日志打印工具类 可显示打印所在的方法和行号.便于开发人员查看Log信息~~ package com.newland.util;import java.io.BufferedWriter ...

  3. android开发必备日志打印工具类

    今天给大家献上一款好用的日志打印工具.大家在平时的开发中用的最多的可能就是Log.i("",""),Log.e("","" ...

  4. 日志打印工具类LogUtils

    /** * 日志工具类: * 我们在项目中经常会打印日志,但是在项目上线后日志仍然会打印 * 这样会降低程序运行效率,因此需要在项目上线的时候把日志屏蔽掉 */ public class LogUti ...

  5. 封装简易日志打印工具类

    package threadpart;import java.text.SimpleDateFormat; import java.util.Date;/*** 简易日志工具*@create by g ...

  6. Android中Log日志的管理之log工具类

    平常开发项目中难免会用到日志的管理,下面的log日志是比较好用完善的,直接调用即可,有日志开关,日志等级等 import android.util.Log; /*** 日志相关类:默认是测试环境< ...

  7. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  8. 解密android日志xlog,安卓开发技巧2:自定义日志工具类XLog的实现

    安卓开发技巧二:自定义日志工具类XLog的实现 我们在开发过程中,打印日志是必不可少的一个调试环节,然而,直接使用系统自带的Log日志类,并不能满足我们实际项目的需求:假如我们现在在开发一款比较大的项 ...

  9. python log日志_Python的log日志功能及设置方法

    引入:Python中有个logging模块可以完成相关信息的记录,在debug时用它往往事半功倍 一.日志级别(从低到高): DEBUG :详细的信息,通常只出现在诊断问题上 INFO:确认一切按预期 ...

最新文章

  1. hdu4740 不错的简单搜索
  2. 有些数的素因子只有3,5,7.请设计一个算法,找出其中第k个数
  3. c判断char数组是否为空_你学过数组,那你知道柔性数组吗?
  4. VS Code运行Python程序
  5. java12关键字var_Java 10:“ var”关键字
  6. bzoj 3881 [Coci2015]Divljak——LCT维护parent树链并
  7. 【英语学习】【WOTD】raddled 释义/词源/示例
  8. Java第2章:变量和运算符
  9. 如何在本地运行jar文件
  10. SAXReader 解析xml
  11. matlab画回归曲线方程,MATLAB线性回归方程与非线性回归方程的相关计算
  12. Web—信息收集(非常全)
  13. 传统蓝牙HCI Command(蓝牙HCI命令)详细介绍
  14. My Eighty-first Page - 打家劫舍 - By Nicolas
  15. 高考倒计时100天,考生如何提前准备?
  16. java 刻度尺,刻度尺选择控件
  17. 工作三年的Java程序员该如何规划后续的职业发展?
  18. Contabs日志中报错:No MTA installed, discarding output
  19. android go 小米1,小米首款Android Go入门机红米Redmi Go发布,1GB+8GB运存
  20. 【520521】程序员中的“芳心纵火犯”, 这就是面向对象编程吗?

热门文章

  1. ssm+java+vue微信小程序的驾校预约管理系统#毕业设计
  2. 国际域名相关仲裁政策法规
  3. “创业七年,一分股份没拿” 技术出身CEO分享那些分股份的坑
  4. 云来创始人谌鹏飞受邀中国连锁业O2O大会演讲《极速·连接》
  5. 哪些是真正的全光谱灯品牌呢?推荐五款全光谱护眼灯
  6. matlab-colormap使用
  7. 铝电解电容外型尺寸 和 LED 贴片封装
  8. HTB:在线主机-Worker
  9. 程序员怎么才能快速熟悉掌握一个项目
  10. 基于Python制作的24点游戏生成器