test(logging): optimize logging tests and fix broken tests

This commit is contained in:
qzl
2026-04-01 14:46:47 +08:00
parent d1092df254
commit 640b4d15a3
6 changed files with 316 additions and 87 deletions
+49 -31
View File
@@ -1,71 +1,89 @@
import 'package:flutter/foundation.dart';
import 'log_config.dart';
import 'log_entry.dart';
import 'log_service.dart';
LogService? _globalLogService;
class Logger {
final String module;
final LogService _service;
final LogService? _service;
final bool _isNoOp;
Logger(this.module, this._service);
Logger(this.module, this._service) : _isNoOp = _service == null;
factory Logger.get(String module) {
return Logger(module, _ensureService());
return Logger(module, _globalLogService);
}
static void setLogService(LogService service) {
_globalLogService = service;
}
static LogService _ensureService() {
return _globalLogService ??
(throw StateError('LogService not initialized'));
static LogService? _ensureService() {
return _globalLogService;
}
void debug({
required String message,
Map<String, dynamic>? extra,
StackTrace? stackTrace,
}) => _service.debug(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}) {
if (_isNoOp) return;
_service!.debug(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}
void info({
required String message,
Map<String, dynamic>? extra,
StackTrace? stackTrace,
}) => _service.info(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}) {
if (_isNoOp) return;
_service!.info(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}
void warning({
required String message,
Map<String, dynamic>? extra,
StackTrace? stackTrace,
}) => _service.warning(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}) {
if (_isNoOp) return;
_service!.warning(
message: message,
module: module,
extra: extra ?? {},
stackTrace: stackTrace,
);
}
void error({
required String message,
required Object error,
required StackTrace stackTrace,
Map<String, dynamic>? extra,
}) => _service.error(
message: message,
error: error,
stackTrace: stackTrace,
module: module,
extra: extra,
);
}) {
if (_isNoOp) {
debugPrint('[$module] ERROR: $message, error: $error');
return;
}
_service!.error(
message: message,
error: error,
stackTrace: stackTrace,
module: module,
extra: extra,
);
}
}
Logger getLogger(String module) => Logger.get(module);