log method
void
log(})
override
Logs a message with the specified level and optional metadata.
level The severity level of the log message.
message The message to log.
source Optional source identifier (e.g., client name, agent name).
metadata Optional additional data related to the log entry.
Implementation
@override
void log(LogLevel level, String message, {String? source, Map<String, dynamic>? metadata}) {
if (_sink == null) return;
try {
final timestamp = DateTime.now().toIso8601String();
final sourceStr = source != null ? '[$source] ' : '';
final levelStr = level.name;
_sink!.writeln('$timestamp [$levelStr] $sourceStr$message');
// Log metadata if available
if (metadata != null && metadata.isNotEmpty) {
_sink!.writeln(' Metadata: $metadata');
}
} catch (e) {
print('Error writing to log file: $e');
}
}