logStructured method

void logStructured(
  1. LogLevel level,
  2. dynamic message, {
  3. Map<String, Object>? data,
  4. String? tag,
  5. DateTime? timestamp,
})

Logs a message with structured data.

Auto-initializes with ConsoleLogStrategy if not yet initialized.

message - The message to log. Supports lazy evaluation via closures.

Implementation

void logStructured(
  LogLevel level,
  dynamic message, {
  Map<String, Object>? data,
  String? tag,
  DateTime? timestamp,
}) {
  _ensureInitialized();

  final resolvedMessage = _resolveMessage(message);

  final event = LogEvent(
    eventName: tag ?? 'LOG',
    eventMessage: resolvedMessage.toString(),
    parameters: data,
  );

  final entry = LogEntry.fromParams(
    message: resolvedMessage,
    level: level,
    event: event,
  );

  _logQueue!.enqueue(entry);
}