只需要输入logi 就可出现以下代码

/// tag(类名.函数名)
LogUtil.i(index, tag: '_MyHomePageState.onItemClick:'); 打印日志效果如下:

实现上面效果步骤如下:

一、封装log_util.dart

  1 ///
2 /// Log工具类:打印日志相关
3 ///
4 /// @author zony
5 /// @time 2022/4/7 14:49
6 class LogUtil {
7 /// 默认日志TAG
8 static const String _TAG_DEF = "LogUtil: ";
9
10 /// 是否打开输出日志,true:log输出
11 static bool isOpenLogDef = true;
12
13 /// 日志TAG
14 static String TAG = _TAG_DEF;
15
16 /// 运行在Release环境时,inProduction为true;
17 /// 当App运行在Debug和Profile环境时,inProduction为false。
18 static const bool inProduction = bool.fromEnvironment("dart.vm.product");
19
20 ///
21 /// 初始化log
22 ///
23 /// [isOpenLog] 是否打开日志
24 /// [tag] tag标识
25 /// @author zony
26 /// @time 2022/4/7 14:45
27 static void init({bool isOpenLog = false, String tag = _TAG_DEF}) {
28 isOpenLogDef = isOpenLog;
29 TAG = tag;
30 }
31
32 ///
33 /// 打印INFO日志
34 ///
35 /// [object] 打印object内容
36 /// [tag] tag标识
37 /// @author zony
38 /// @time 2022/4/7 14:47
39 static void i(Object object, {String tag = _TAG_DEF}) {
40 _printLog(tag, '[I]', object);
41 }
42
43 ///
44 /// 打印警告日志
45 ///
46 /// [object] 打印object内容
47 /// [tag] tag标识
48 /// @author zony
49 /// @time 2022/4/7 14:47
50 static void w(Object object, {String tag = _TAG_DEF}) {
51 _printLog(tag, '[W]️', object);
52 }
53
54 ///
55 /// 打印错误日志
56 ///
57 /// [object] 打印object内容
58 /// [tag] tag标识
59 /// @author zony
60 /// @time 2022/4/7 14:47
61 static void e(Object object, {String tag = _TAG_DEF}) {
62 _printLog(tag, '[E]', object);
63 }
64
65 ///
66 /// 打印debug日志
67 ///
68 /// [object] 打印object内容
69 /// [tag] tag标识
70 /// @author zony
71 /// @time 2022/4/7 14:47
72 static void d(Object object, {String tag = _TAG_DEF}) {
73 _printLog(tag, "[D]", object);
74 }
75
76 ///
77 /// 输出日志
78 ///
79 /// [tag] tag标识
80 /// [stag] stag标识,比如e、i、v等
81 /// [object] 输出object内容
82 /// @author zony
83 /// @time 2022/4/7 14:48
84 static void _printLog(String tag, String stag, Object object) {
85 if (!isOpenLogDef || inProduction) {
86 print('LogUtil._printLog Log returen! [because isOpenLog: ' +
87 isOpenLogDef.toString() +
88 ', TAG: ' +
89 TAG +
90 ', inProduction: ' +
91 inProduction.toString()+']');
92 return;
93 }
94 StringBuffer stringBuffer = StringBuffer();
95 stringBuffer.writeln(
96 '┌-----------------------------------------------------------------------------------------');
97 stringBuffer.write('│-> ');
98 stringBuffer.write(stag);
99 stringBuffer.write(" ");
100 stringBuffer.write((tag == null || tag.isEmpty) ? TAG : tag);
101 stringBuffer.write(": ");
102 stringBuffer.write(object);
103 print(stringBuffer.toString());
104 print(
105 '└-----------------------------------------------------------------------------------------');
106 }
107 }

二、创建Live Templates

1、File->Setting->Editor->Live Templates

2、点击最右边+,创建一个Template Group  

3、填写group名,任意填写

4、选中你刚刚创建的group,创建Live Template

5、填写Abbreviation,方便输入和记忆可输入logi,即这个日志输出的快捷方式,在输出日志的地方logi加回车即可

6、上图5编辑界面及value如下图

Flutter 打印日志封装及创建Live Templates快捷打印日志的更多相关文章

  1. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  2. java 日志脱敏框架 sensitive,优雅的打印脱敏日志

    问题 为了保证用户的信息安全,敏感信息需要脱敏. 项目开发过程中,每次处理敏感信息的日志问题感觉很麻烦,大部分都是用工具类单独处理,不利于以后统一管理,很不优雅. 于是,就写了一个基于 java 注解 ...

  3. 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil

    封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...

  4. 修复日志,阻止给日志多次添加handlers时候重复打印的问题

    1.解决如果多次添加handlers重复打印的问题.在__add_handlers方法中作出判断. 2.由get_logger_and_add_handlers和get_logger_without_ ...

  5. python 中logging的日志封装

    因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下: ...

  6. Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!

    Go/Python/Erlang编程语言对比分析及示例   本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...

  7. Altium 中异形焊盘异形封装的创建图文教程

    Altium 中异形焊盘异形封装的创建图文教程 一般不规则的焊盘被称为异型焊盘,典型的有金手指.大型的器件焊盘或者板子上需要添加特殊形状的铜箔(可以制作一个特殊封装代替). 如图27所示,此处我们以一 ...

  8. python 日志的配置,python对日志封装成类,日志的调用

    # python 日志的配置,python对日志封装成类,日志的调用 import logging # 使用logging模块: class CLog: # --------------------- ...

  9. logback日志项目使用方法 - 150205交易模块添加日志信息logback,orderNo订单号为log主键便于跟踪,数字常量化,解决取消支付BUG,弱网络环境原因

    1.项目里面的日志,便于跟踪数据的变更和异常错误信息产生.生产环境的日志级别是INFO,测试环境日志级别DEBUG,如果生产环境的日志级别是DEBUG,虽然方便查询问题,可以看到SQL语句等信息,但是 ...

随机推荐

  1. ArcMap操作随记(7)

    1.栅格分辨率调整 [重采样] 2.点集数据对插值模型精度检验 test数据→[子集要素](地统计分析)→train→[插值]→[多值提取至点]→[字段计算器](Abs([value]-[spline ...

  2. 理解 MVCC

    MongoDB.MySQL.Oracle.PostgreSQL 等事务型数据库都有 mvcc 的概念. MVCC: 即多版本并发控制,主要是为了提高数据库的读写性能,让数据库在读写的时候不用去加锁.m ...

  3. 创建一个 20G 的分区,并格式化为 ext4 文件系统

     创建一个 20G 的分区,并格式化为 ext4 文件系统,并完成如下要求: (1)block 大小为 2048,预留空间 20%,卷标为 MYDATA #fdisk /dev/sdb -->n ...

  4. VMware Workstation网络修改vlan id值

    我们捣鼓虚拟机时,有时候网卡是需要承载多个vlan的,比如说部署fuel时网卡3需要承载私有,管理,存储网络的流量. 在virtualbox中我们可以直接在混杂模式项选择全部允许,但是在VMware ...

  5. WinCE知识介绍

    学习WinCE基本开发的步骤: 1.了解WinCE发展史: 2.WinCE开发环境搭建:[软件工具+插件] 3.简单案例: 参考:http://blog.csdn.net/educast/articl ...

  6. centos配置ssh服务并简单测试

    最近在做计算机集群方面的东西,简单弄了一下ssh服务. 首先把前提情况介绍一下: 1.我是用的虚拟机先模拟的,也不是没有真机,就是跑来跑去麻烦. 2.装了三个相同配置的centos虚拟机,详细参数就不 ...

  7. 在 Spring中如何注入一个java集合?

    Spring提供以下几种集合的配置元素: 类型用于注入一列值,允许有相同的值. 类型用于注入一组值,不允许有相同的值. 类型用于注入一组键值对,键和值都可以为任意类型. 类型用于注入一组键值对,键和值 ...

  8. 您对 Mike Cohn 的测试金字塔了解多少?

    Mike Cohn 提供了一个名为 Test Pyramid 的模型.这描述了软件开发所需的自 动化测试类型. 根据金字塔,第一层的测试数量应该最高.在服务层,测试次数应小于单元测试 级别,但应大于端 ...

  9. HTML 5中的DataList是什么?

    HTML 5中的DataList控件元素有助于提供自动完成功能的文本框,如下图所示. 下面是DataList控件功能的HTML代码: <input list="Country" ...

  10. 微信小程序 iphone6 和 iphone6plus 如何设置rpx单位,通俗易懂的方法

    pt:屏幕物理像素(屏幕实际宽度像素) px:屏幕分辨率 pt和px关系:iphone6plusppi密度高,1pt里有3px,iphone6 1pt里有2px. iphone6宽度 (物理像素) : ...