Flutter中输入日志显示对应的行和文件名字

1.封装代码:

void DFLog(Object message, StackTrace current) {
  HYCustomTrace programInfo = HYCustomTrace(current);

  print(
      "所在文件:${programInfo.filName},所在行${programInfo.lineNumber},所在列:${programInfo.columnNumber},打印信$message");
}

class HYCustomTrace {
  final StackTrace _trace;

  late String filName;
  late int lineNumber;
  late int columnNumber;

  HYCustomTrace(this._trace) {
    _parseTrace();
  }

  void _parseTrace() {
    var traceString = _trace.toString().split("\n")[0];

    var indexOfFileName = traceString.indexOf(RegExp(r'[A-Za-z_]+.dart'));

    var fileInfo = traceString.substring(indexOfFileName);

    var listOfInfos = fileInfo.split(":");
    this.filName = listOfInfos[0];
    this.lineNumber = int.parse(listOfInfos[1]);
    var columnStr = listOfInfos[2];
    columnStr = columnStr.replaceFirst(")", "");
    this.columnNumber = int.parse(columnStr);
  }
}

2.使用方式:

 

DFLog("需要打印到的内容",StackTrace current);


版权声明:本文为eastWind1101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。