log method
void
log(})
Log a message at the specified level
Implementation
void log(
LogLevel level,
String message, {
String? tag,
Object? error,
StackTrace? stackTrace,
Map<String, dynamic>? context,
}) {
// Quick exit if level is not enabled
if (!level.isEnabled(minimumLevel)) {
return;
}
// Create log entry
final entry = LogEntry(
timestamp: DateTime.now(),
level: level,
message: message,
tag: tag,
error: error,
stackTrace: stackTrace,
context: {
..._defaultContext,
if (context != null) ...context,
},
loggerName: name,
);
// Apply filters
bool shouldLog = true;
for (final filter in _filters) {
if (!filter.shouldLog(entry)) {
shouldLog = false;
break;
}
}
if (!shouldLog) return;
// Add to stream
_logController.add(entry);
// Send to all sinks asynchronously
_sendToSinks(entry);
}