log method

Future<void> log(
  1. LogLevel level,
  2. Object message, {
  3. Object? error,
  4. StackTrace? stackTrace,
  5. String? context,
})

Emits a log event at level and fans it out to all registered transports.

message can be any object; transports call toString when needed. error and stackTrace attach exception details to the event. context is an optional source label (e.g. class or module name).

Implementation

Future<void> log(
  LogLevel level,
  Object message, {
  Object? error,
  StackTrace? stackTrace,
  String? context,
}) async {
  if (level == LogLevel.silent) {
    throw ArgumentError.value(
      level,
      'level',
      'LogLevel.silent is a threshold sentinel and cannot be used to emit events.',
    );
  }
  final event = LogEvent(
    level: level,
    message: message,
    error: error,
    stackTrace: stackTrace,
    context: context,
  );
  await Future.wait(transports.map((t) => t.log(event)));
}