Flutter 自定义调试Log

在Flutter 调试过程中使用自己的Log 打印进行调试。

import 'package:flutter/foundation.dart';

void Logs(Object message, StackTrace current) {
    
    
  // ignore: unused_local_variable
  CustomTrace programInfo = CustomTrace(current);
  if (kDebugMode) {
    
    
  print(
      "所在文件: ${
      
      programInfo.fileName},所在行:${
      
      programInfo.lineNumber}, 打印信息:$message");
  }
}

class CustomTrace {
    
    
  final StackTrace _trace;

  String fileName;
  int lineNumber;
  int columnNumber;

  CustomTrace(this._trace,
      {
    
    this.fileName = "", this.lineNumber = 0, this.columnNumber = 0}) {
    
    
    _parseTrace();
  }

  void _parseTrace() {
    
    
    // ignore: unused_local_variable
    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(":");
    fileName = listofInfos[0];
    lineNumber = int.parse(listofInfos[1]);
    var columnStr = listofInfos[2];
    columnStr = columnStr.replaceFirst(")", "");
    columnNumber = int.parse(columnStr);
  }
}

使用方式:

Logs("_MyHomePageState", StackTrace.current);

打印结果如下:

flutter: 所在文件: main.dart,所在行:38, 打印信息:_MyHomePageState

猜你喜欢

转载自blog.csdn.net/tongwei117/article/details/131889293