diff options
| author | uvok | 2025-08-03 18:07:13 +0200 | 
|---|---|---|
| committer | uvok | 2025-08-03 18:07:13 +0200 | 
| commit | d49bf35757d3d77c4ef66635de00c8b6e3fc64b8 (patch) | |
| tree | 775c853b48f41711fdba661035346229b8860d63 | |
| parent | ea91eb4c0675c137660f5c3ae77b97b1bf45ec42 (diff) | |
Use file prefix loggermain
| -rw-r--r-- | lib/control/flutter_blue_plus_scanner_controller.dart | 4 | ||||
| -rw-r--r-- | lib/control/scanner_controller_impl.dart | 4 | ||||
| -rw-r--r-- | lib/control/universal_ble_scanner_controller.dart | 4 | ||||
| -rw-r--r-- | lib/log.dart | 58 | ||||
| -rw-r--r-- | lib/main.dart | 6 | ||||
| -rw-r--r-- | lib/model/connection/flutter_blue_plus_device_connection.dart | 4 | ||||
| -rw-r--r-- | lib/view_model/badge_motive_view_model.dart | 4 | ||||
| -rw-r--r-- | lib/widgets/device_details.dart | 4 | ||||
| -rw-r--r-- | lib/widgets/scan_page.dart | 4 | 
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}); | 
