在開發(fā)flutter過程中難免會(huì)使用打印函數(shù)孩饼,為此我自己封裝了一個(gè)函數(shù)西轩,方便打印當(dāng)前所在文件名和所在的行號(hào)吏祸;
直接上代碼:
代碼如下:
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("打印內(nèi)容:$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);
如果需要請(qǐng)帶走吧~