blob: 40d934e3b8852a3ad065618a960518ee115e72d6 [file] [log] [blame]
import 'dart:async';
import 'level.dart';
import 'logger.dart';
/// A log entry representation used to propagate information from [Logger] to
/// individual handlers.
class LogRecord {
final Level level;
final String message;
/// Non-string message passed to Logger.
final Object object;
/// Logger where this record is stored.
final String loggerName;
/// Time when this record was created.
final DateTime time;
/// Unique sequence number greater than all log records created before it.
final int sequenceNumber;
static int _nextNumber = 0;
/// Associated error (if any) when recording errors messages.
final Object error;
/// Associated stackTrace (if any) when recording errors messages.
final StackTrace stackTrace;
/// Zone of the calling code which resulted in this LogRecord.
final Zone zone;
LogRecord(this.level, this.message, this.loggerName,
[this.error, this.stackTrace, this.zone, this.object])
: time = DateTime.now(),
sequenceNumber = LogRecord._nextNumber++;
@override
String toString() => '[${level.name}] $loggerName: $message';
}