trace static method
高级跟踪日志,输出日志同时包含调用位置(文件名、行号和方法名)。 仅在debug/dev模式下生效,release版自动忽略。
参数:
message要输出的日志内容。
返回结果: 无。
示例
Logger.trace('进入某方法');
Implementation
static void trace(String message) {
if (const bool.fromEnvironment('dart.vm.product')) {
// 当应用编译为 release 版本时,dart.vm.product 通常被设置为 true
return;
}
String formattedDate = DateTime.now().toString();
var currentStack = StackTrace.current;
var formattedStack =
currentStack.toString().split("\n")[1].trim(); // 获取调用 log 方法的位置
// 提取文件名、方法名和行号信息
var match = RegExp(r'^#1\s+(.+)\s\((.+):(\d+):(\d+)\)$').firstMatch(formattedStack);
var methodName = match?.group(1) ?? 'unknown method';
var fileName = match?.group(2) ?? 'unknown file';
var line = match?.group(3) ?? 'unknown line';
print('$formattedDate [$fileName:$line $methodName] $message');
}