summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/control/flutter_blue_plus_scanner_controller.dart4
-rw-r--r--lib/control/scanner_controller_impl.dart4
-rw-r--r--lib/control/universal_ble_scanner_controller.dart4
-rw-r--r--lib/log.dart58
-rw-r--r--lib/main.dart6
-rw-r--r--lib/model/connection/flutter_blue_plus_device_connection.dart4
-rw-r--r--lib/view_model/badge_motive_view_model.dart4
-rw-r--r--lib/widgets/device_details.dart4
-rw-r--r--lib/widgets/scan_page.dart4
9 files changed, 75 insertions, 17 deletions
diff --git a/lib/control/flutter_blue_plus_scanner_controller.dart b/lib/control/flutter_blue_plus_scanner_controller.dart
index 1c93cf6..62cc850 100644
--- a/lib/control/flutter_blue_plus_scanner_controller.dart
+++ b/lib/control/flutter_blue_plus_scanner_controller.dart
@@ -15,13 +15,13 @@
import 'dart:async';
import 'package:uvok_epaper_badge/control/scanner_controller_impl.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/device/flutter_blue_plus_device.dart';
import 'package:uvok_epaper_badge/model/device/device.dart';
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
-import 'package:logger/logger.dart';
-var logger = Logger();
+var logger = fileLogger();
class FlutterBluePlusScannerController extends ScannerControllerImpl {
late final StreamSubscription<BluetoothAdapterState> _availSubs;
diff --git a/lib/control/scanner_controller_impl.dart b/lib/control/scanner_controller_impl.dart
index de64398..df9532b 100644
--- a/lib/control/scanner_controller_impl.dart
+++ b/lib/control/scanner_controller_impl.dart
@@ -14,14 +14,14 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'dart:async';
-import 'package:logger/logger.dart';
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:meta/meta.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/device/device.dart';
import 'package:rxdart/rxdart.dart';
-Logger logger = Logger();
+var logger = fileLogger();
/// Helper class which provides the setStatus method.
abstract class ScannerControllerImpl implements ScannerController {
diff --git a/lib/control/universal_ble_scanner_controller.dart b/lib/control/universal_ble_scanner_controller.dart
index 6cad770..2dd6d5d 100644
--- a/lib/control/universal_ble_scanner_controller.dart
+++ b/lib/control/universal_ble_scanner_controller.dart
@@ -15,14 +15,14 @@
import 'dart:async';
-import 'package:logger/logger.dart';
import 'package:universal_ble/universal_ble.dart';
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:uvok_epaper_badge/control/scanner_controller_impl.dart';
import 'package:uvok_epaper_badge/extensions/list_ext.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/device/universal_ble_device.dart';
-Logger logger = Logger();
+var logger = fileLogger();
class UniversalBleScannerController extends ScannerControllerImpl {
StreamSubscription<BleDevice>? _subScan;
diff --git a/lib/log.dart b/lib/log.dart
new file mode 100644
index 0000000..6029ae9
--- /dev/null
+++ b/lib/log.dart
@@ -0,0 +1,58 @@
+// Copyright (C) 2025, uvok cheetah
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+import 'package:logger/logger.dart';
+
+Logger fileLogger([String? name]) {
+ String fileName = "???";
+
+ if (name == null) {
+ final String? callerName = StackTrace.current
+ .toString()
+ .split('\n')
+ .elementAtOrNull(1);
+ if (callerName != null) {
+ final int start = callerName.indexOf("package:");
+ if (start != -1) {
+ final int fileNameStart = start + "package:".length;
+ final int end = callerName.indexOf(":", fileNameStart);
+
+ if (end != -1 && end > fileNameStart) {
+ fileName = callerName.substring(fileNameStart, end);
+ }
+ }
+ }
+ } else {
+ fileName = name;
+ }
+ return Logger(printer: FilePrefixPrinter(SimplePrinter(), fileName));
+}
+
+class FilePrefixPrinter extends LogPrinter {
+ final LogPrinter delegate;
+ final String fileName;
+
+ FilePrefixPrinter(this.delegate, this.fileName);
+
+ @override
+ List<String> log(LogEvent event) {
+ final lines = delegate.log(event);
+ return lines.map((line) {
+ // ugh..... relying on implementation details...
+ var e = line.indexOf("[0m") + 3;
+ return '${line.substring(0, e)} [$fileName] ${line.substring(e)}';
+ }).toList();
+ }
+}
diff --git a/lib/main.dart b/lib/main.dart
index 90eba85..f3fea9e 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -17,12 +17,12 @@ import 'package:uvok_epaper_badge/control/flutter_blue_plus_scanner_controller.d
import 'package:uvok_epaper_badge/control/mock_scanner_controller.dart';
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
import 'package:uvok_epaper_badge/control/universal_ble_scanner_controller.dart';
+import 'package:uvok_epaper_badge/log.dart' show fileLogger;
import 'package:uvok_epaper_badge/widgets/badge_app.dart';
-import 'package:flutter/material.dart';
-import 'package:logger/logger.dart';
+import 'package:flutter/material.dart';
-var logger = Logger();
+var logger = fileLogger();
void main() {
// needed for UniversalBlue, as I initialize the controller early...
diff --git a/lib/model/connection/flutter_blue_plus_device_connection.dart b/lib/model/connection/flutter_blue_plus_device_connection.dart
index 5cb9eb2..37866aa 100644
--- a/lib/model/connection/flutter_blue_plus_device_connection.dart
+++ b/lib/model/connection/flutter_blue_plus_device_connection.dart
@@ -17,12 +17,12 @@ import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
-import 'package:logger/logger.dart';
import 'package:uvok_epaper_badge/extensions/iterable_ext.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/connection/device_connection.dart';
import 'package:uvok_epaper_badge/model/device/flutter_blue_plus_device.dart';
-var logger = Logger();
+var logger = fileLogger();
class FlutterBluePlusDeviceConnection implements DeviceConnection {
final ValueNotifier<ConnectionStatus> _status = ValueNotifier(
diff --git a/lib/view_model/badge_motive_view_model.dart b/lib/view_model/badge_motive_view_model.dart
index 64ba387..cf4bf27 100644
--- a/lib/view_model/badge_motive_view_model.dart
+++ b/lib/view_model/badge_motive_view_model.dart
@@ -14,11 +14,11 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
import 'package:flutter/foundation.dart';
-import 'package:logger/logger.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/badge_motive.dart';
import 'package:uvok_epaper_badge/model/motive_selection/badge_motive_selection.dart';
-Logger logger = Logger();
+var logger = fileLogger();
class BadgeMotiveViewModel extends ChangeNotifier {
final BadgeMotiveSelection _motivSelect;
diff --git a/lib/widgets/device_details.dart b/lib/widgets/device_details.dart
index dc8ca97..a865e45 100644
--- a/lib/widgets/device_details.dart
+++ b/lib/widgets/device_details.dart
@@ -15,16 +15,16 @@
import 'dart:ui';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/model/badge_motive_selection_factory.dart';
import 'package:uvok_epaper_badge/model/device/device.dart';
import 'package:flutter/material.dart';
-import 'package:logger/logger.dart';
import 'package:uvok_epaper_badge/model/connection/device_connection.dart';
import 'package:uvok_epaper_badge/model/motive_selection/badge_motive_selection.dart';
import 'package:uvok_epaper_badge/view_model/badge_motive_view_model.dart';
import 'package:uvok_epaper_badge/widgets/badge_motive_list.dart';
-var logger = Logger();
+var logger = fileLogger();
class DeviceDetailsScreen extends StatefulWidget {
final Device device;
diff --git a/lib/widgets/scan_page.dart b/lib/widgets/scan_page.dart
index f6695fe..650ad01 100644
--- a/lib/widgets/scan_page.dart
+++ b/lib/widgets/scan_page.dart
@@ -16,16 +16,16 @@
import 'dart:io';
import 'package:uvok_epaper_badge/control/scanner_controller.dart';
+import 'package:uvok_epaper_badge/log.dart';
import 'package:uvok_epaper_badge/widgets/device_details.dart';
import 'package:uvok_epaper_badge/widgets/device_scan_select.dart';
import 'package:uvok_epaper_badge/model/device/device.dart';
import 'package:flutter/material.dart';
-import 'package:logger/logger.dart';
import 'package:permission_handler/permission_handler.dart';
import 'package:uvok_epaper_badge/model/connection/device_connection.dart';
import 'package:uvok_epaper_badge/model/device_connection_factory.dart';
-var logger = Logger();
+var logger = fileLogger();
class ScanPage extends StatefulWidget {
const ScanPage({super.key, required this.title, required this.deviceScanner});