meshcore-open/lib/utils/app_logger.dart

60 lines
1.6 KiB
Dart

import '../services/app_debug_log_service.dart';
/// Global app logger instance
/// Usage: appLogger.info('Message', tag: 'MyClass');
class AppLogger {
AppDebugLogService? _service;
bool _enabled = false;
/// Initialize the logger with the debug log service
void initialize(AppDebugLogService service, {bool enabled = false}) {
_service = service;
_enabled = enabled;
_service?.setEnabled(enabled);
}
/// Update whether logging is enabled
void setEnabled(bool enabled) {
_enabled = enabled;
_service?.setEnabled(enabled);
}
/// Check if logging is currently enabled
bool get isEnabled => _enabled;
/// Log an info message
void info(String message, {String tag = 'App', bool noNotify = false}) {
if (_enabled && _service != null) {
_service!.info(message, tag: tag, noNotify: noNotify);
}
}
/// Log a warning message
void warn(String message, {String tag = 'App', bool noNotify = false}) {
if (_enabled && _service != null) {
_service!.warn(message, tag: tag, noNotify: noNotify);
}
}
/// Log an error message
void error(String message, {String tag = 'App', bool noNotify = false}) {
if (_enabled && _service != null) {
_service!.error(message, tag: tag, noNotify: noNotify);
}
}
/// Log a message with custom level
void log(
String message, {
String tag = 'App',
AppDebugLogLevel level = AppDebugLogLevel.info,
bool noNotify = false,
}) {
if (_enabled && _service != null) {
_service!.log(message, tag: tag, level: level, noNotify: noNotify);
}
}
}
/// Global logger instance
final appLogger = AppLogger();