美文网首页Flutter
flutter 打印所在行和行号

flutter 打印所在行和行号

作者: Victory_886 | 来源:发表于2020-07-02 12:41 被阅读0次

    在开发flutter过程中难免会使用打印函数,为此我自己封装了一个函数,方便打印当前所在文件名和所在的行号;
    直接上代码:

    代码如下:

    
    import 'package:flutter/foundation.dart';
    
    void fLog(Object message, StackTrace trace) {
      if (kDebugMode) {
        //
        FCustomTrace programInfo = FCustomTrace(trace);
        if (programInfo != null &&
            programInfo.fileName != null &&
            programInfo.lineNumber != null) {
          print(
              "所在文件: ${programInfo.fileName}, 所在行: ${programInfo.lineNumber}, 打印信息: $message");
        } else {
          print("打印内容:$message");
        }
      } else if (kReleaseMode) {
        print("----ReleaseMode-------");
      } else if (kProfileMode) {
        print("----ProfileMode-------");
      }
    }
    
    class FCustomTrace {
      final StackTrace _trace;
    
      String fileName;
      int lineNumber;
      int columnNumber;
    
      FCustomTrace(this._trace) {
        _parseTrace();
      }
    
      void _parseTrace() {
        var traceString = this._trace.toString().split("\n")[0];
        var indexOfFileName = traceString.indexOf(RegExp(r'[A-Za-z_]+.dart'));
        var fileInfo = traceString.substring(indexOfFileName);
        var listOfInfos = fileInfo.split(":");
        //print('-----listOfInfos--===== $listOfInfos  -------=====');
        this.fileName = listOfInfos[0];
        this.lineNumber = int.parse(listOfInfos[1]);
        var columnStr = listOfInfos[2];
        columnStr = columnStr.replaceFirst(")", "");
        this.columnNumber = int.parse(columnStr);
      }
    }
    

    使用方式如下:

    fLog("message", StackTrace.current);
    

    如果需要请带走吧~

    相关文章

      网友评论

        本文标题:flutter 打印所在行和行号

        本文链接:https://www.haomeiwen.com/subject/xlalqktx.html