• 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 }
    View Code

    二、创建Live Templates

    1、File->Setting->Editor->Live Templates
    
    2、点击最右边+,创建一个Template Group  
    
    3、填写group名,任意填写
    
    4、选中你刚刚创建的group,创建Live Template
    
    5、填写Abbreviation,方便输入和记忆可输入logi,即这个日志输出的快捷方式,在输出日志的地方logi加回车即可
    
    

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

  • 相关阅读:
    more命令
    mktemp命令
    有效的括号字符串
    mc命令
    字符串相加
    Vue中虚拟DOM的理解
    chattr命令
    记近一年线上项目经验及架构变更记录
    微博AnalysisQl动态数据视图元数据设计
    搭建prometheus+grafana监控SpringBoot应用入门
  • 原文地址:https://www.cnblogs.com/zgz345/p/16122072.html
Copyright © 2020-2023  润新知