Flutter 打印日志封装及创建Live Templates快捷打印日志
只需要输入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快捷打印日志的更多相关文章
- 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil
封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...
- java 日志脱敏框架 sensitive,优雅的打印脱敏日志
问题 为了保证用户的信息安全,敏感信息需要脱敏. 项目开发过程中,每次处理敏感信息的日志问题感觉很麻烦,大部分都是用工具类单独处理,不利于以后统一管理,很不优雅. 于是,就写了一个基于 java 注解 ...
- 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,nloglogutil
封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil,代码比较简单,主要是把MongoTarget的配置.FileTarget的配置集成到类中,同时利用缓存依赖来判断是否需要重新创 ...
- 修复日志,阻止给日志多次添加handlers时候重复打印的问题
1.解决如果多次添加handlers重复打印的问题.在__add_handlers方法中作出判断. 2.由get_logger_and_add_handlers和get_logger_without_ ...
- python 中logging的日志封装
因为最近在做平台,发现有同事,使用django封装了日志模块,看样子很简单,准备自己单独做了一个日志封装模板,对于python不熟练的我,封装部分参考了多个博主的内容,形成自己的日志模块,内容如下: ...
- Go/Python/Erlang编程语言对比分析及示例 基于RabbitMQ.Client组件实现RabbitMQ可复用的 ConnectionPool(连接池) 封装一个基于NLog+NLog.Mongo的日志记录工具类LogUtil 分享基于MemoryCache(内存缓存)的缓存工具类,C# B/S 、C/S项目均可以使用!
Go/Python/Erlang编程语言对比分析及示例 本文主要是介绍Go,从语言对比分析的角度切入.之所以选择与Python.Erlang对比,是因为做为高级语言,它们语言特性上有较大的相似性, ...
- Altium 中异形焊盘异形封装的创建图文教程
Altium 中异形焊盘异形封装的创建图文教程 一般不规则的焊盘被称为异型焊盘,典型的有金手指.大型的器件焊盘或者板子上需要添加特殊形状的铜箔(可以制作一个特殊封装代替). 如图27所示,此处我们以一 ...
- python 日志的配置,python对日志封装成类,日志的调用
# python 日志的配置,python对日志封装成类,日志的调用 import logging # 使用logging模块: class CLog: # --------------------- ...
- logback日志项目使用方法 - 150205交易模块添加日志信息logback,orderNo订单号为log主键便于跟踪,数字常量化,解决取消支付BUG,弱网络环境原因
1.项目里面的日志,便于跟踪数据的变更和异常错误信息产生.生产环境的日志级别是INFO,测试环境日志级别DEBUG,如果生产环境的日志级别是DEBUG,虽然方便查询问题,可以看到SQL语句等信息,但是 ...
随机推荐
- RocketMQ 事务消息示例分析
@ 目录 1 示例模式 2 安装与配置 RocketMQ 3 运行服务 3.1 启动 NameServer 3.2 启动 broker 4 生产者 4.1 事务监听器 4.2 事务消息生产者 5 消费 ...
- PhpMyadmin后台拿webshell方法总结
前言: phpmyadmin后台拿webshell的方法主要分为两个方法: (1) .通过日志文件拿webshell; (2) .利用日志文件写入一句话;(这个方法可能在实际操作中会遇到困难): 本地 ...
- python 发送GET请求
# #博客地址:https://blog.csdn.net/qq_36374896 # 特点:把数据拼接到请求路径的后面传递给服务器 # # 优点:速度快 # # 缺点:承载的数据量小,不安全 imp ...
- [转载]详解ssh端口转发(二)
关于使用ssh portforwarding来进行FQ的操作,网络上已经有很多很好的文章,我在这里只是画两个图解释一下. 首先要记住一件事情就是: SSH 端口转发自然需要 SSH 连接,而 SSH ...
- 记-Golang获取本机IP及快速搭建局域FTP
1 package main 2 3 import ( 4 "fmt" 5 "net" 6 "net/http" 7 "strin ...
- HTTPS-各种加密方式
推荐阅读:https://www.cnblogs.com/zwtblog/tag/计算机网络/ 目录 HTTPS 对称加密(AES) 非对称加密(RSA) 工作过程 分析 优缺点 常用算法 混合加密 ...
- 什么是springcloud?springcloud断路器的作用是什么?springcloud的核心组件有什么?
一.什么是springcloud 1.springcloud概述 Spring Cloud是一个微服务框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系统解决方案. Sp ...
- web.xml---配置文件概要
web.xml分发器: case1: springMvc的分发器: 作用:将匹配上的请求交由springMvc处理,路径会继续到达springMvc的处理器映射器 <servlet> &l ...
- Redis 集群方案什么情况下会导致整个集群不可用?
有 A,B,C 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了, 那么整个集群就会以为缺少 5501-11000 这个范围的槽而不可用.
- 详解 IOC
什么是IOC: IOC-Inversion Of Control,即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是 ...
