在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