extractCallerLocation static method

String? extractCallerLocation([
  1. int frameLevel = 2
])

Implementation

static String? extractCallerLocation([int frameLevel = 2]) {
  try {
    final trace = StackTrace.current.toString().split('\n');
    if (trace.length > frameLevel) {
      final frame = trace[frameLevel].trim(); // Example: '#2   MyClass.myMethod (package:app/main.dart:42:13)'
      final regex = RegExp(r'#\d+\s+(.+?) \((.+?):(\d+):(\d+)\)');
      final match = regex.firstMatch(frame);

      if (match != null) {
        final method = match.group(1);
        final file = match.group(2);
        final line = match.group(3);
        final column = match.group(4);
        return '$method ($file:$line:$column)\n${file?.split('/').last}:$line';
      }
    }
  } catch (_) {}
  return null;
}