Integrate logging system into Flutter app with service registration and testing setup

This commit is contained in:
2025-09-21 11:03:06 +02:00
parent daaaed47c4
commit 5572c66b10
9 changed files with 273 additions and 12 deletions

View File

@@ -0,0 +1,57 @@
import 'package:flutter/material.dart';
import 'package:fluttery/logger/logger.dart';
import 'package:logging/logging.dart' as lib;
// ignore_for_file: avoid_print
class LoggerImpl implements Logger {
final lib.Logger _logger;
// coverage:ignore-start
/// Constructor
LoggerImpl() : _logger = lib.Logger("Logger") {
_logger.onRecord.listen((lib.LogRecord record) {
print('${record.level.name}: ${record.time}: ${record.message}');
if (record.error != null) {
print('Error: ${record.error}');
}
if (record.stackTrace != null) {
print('Stack Trace: ${record.stackTrace}');
}
});
}
// coverage:ignore-end
@visibleForTesting
factory LoggerImpl.forTest(lib.Logger logger) {
final instance = LoggerImpl._internal(logger);
return instance;
}
// Private internal constructor
LoggerImpl._internal(this._logger);
@override
void info(String message) {
_logger.info(message);
}
@override
void warning(String message) {
_logger.warning(message);
}
@override
void error(String message, [Object? error, StackTrace? stackTrace]) {
_logger.severe(message, error, stackTrace);
}
@override
void debug(String message) {
_logger.fine(message);
}
@override
void setLogLevel(lib.Level level) {
_logger.level = level;
}
}