diff --git a/CHANGELOG.md b/CHANGELOG.md index 0251856..67c9404 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.2.5 + +- Improved automatic metadata detection in `ArcaneLogger` + ## 1.2.4 - Update package dependencies diff --git a/example/pubspec.yaml b/example/pubspec.yaml index dc8ea71..7e778fa 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -14,7 +14,7 @@ dependencies: uuid: ^4.5.0 dev_dependencies: - flutter_lints: ^4.0.0 + flutter_lints: ^5.0.0 flutter_test: sdk: flutter diff --git a/lib/src/services/logging/logging_service.dart b/lib/src/services/logging/logging_service.dart index a79edd8..9538757 100644 --- a/lib/src/services/logging/logging_service.dart +++ b/lib/src/services/logging/logging_service.dart @@ -132,22 +132,25 @@ class ArcaneLogger { metadata.putIfAbsent("timestamp", () => now); try { - final List parts = StackTrace.current + final List parts = + StackTrace.current.toString().split("\n")[2].split(RegExp("#2"))[1].trimLeft().split("."); + + module ??= parts.first.replaceFirst("new ", ""); + method ??= parts[1].split(" ").first.replaceAll(" fileAndLineParts = StackTrace.current .toString() .split("\n")[2] .split(RegExp("#2"))[1] - .trimLeft() - .split("."); + .trim() + .split("(package:") + .last + .split(":"); - module ??= parts.first.replaceFirst("new ", ""); - method ??= parts[1].split(" ").first; - - final String line = parts.last.substring(5).replaceAll(")", ""); - final String file = parts[1].split(" ").last.replaceAll("(package:", ""); - final String fileAndLine = "$file:$line"; + final String fileAndLine = "${fileAndLineParts[0]}:${fileAndLineParts[1]}"; metadata.putIfAbsent("module", () => module!); - metadata.putIfAbsent("method", () => method!); + if (method.isNotNullOrEmpty) metadata.putIfAbsent("method", () => method!); metadata.putIfAbsent("filenameAndLineNumber", () => fileAndLine); } catch (_) {} diff --git a/pubspec.yaml b/pubspec.yaml index 7394c97..bf01760 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: arcane_framework description: "Agnostic Reusable Component Architecture for New Ecosystems: a modern framework for bootstrapping new applications" -version: 1.2.4 +version: 1.2.5 repository: https://github.com/hanskokx/arcane_framework issue_tracker: https://github.com/hanskokx/arcane_framework/issues