Integrate logging system into Flutter app with service registration and testing setup
This commit is contained in:
57
finlog_app/fluttery/lib/src/logger/logger_impl.dart
Normal file
57
finlog_app/fluttery/lib/src/logger/logger_impl.dart
Normal 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user