format method
Formats the given record by writing to the buffer.
Implementations should build a span tree from the record and render it:
void format(LogRecord record, ConsoleMessageBuffer buffer) {
final span = MyLogSpan(record).build();
renderSpan(span, buffer);
}
Implementation
@override
void format(LogRecord record, ConsoleMessageBuffer buffer) {
final span = buildSpan(record);
// Apply formatter's default transformers
for (final transformer in spanTransformers) {
transformer(span, record);
}
// Apply per-log transformers from formatOptions
final perLogTransformers = record.formatOptions
?.whereType<SpanFormatOptions>()
.expand((options) => options.spanTransformers);
if (perLogTransformers != null) {
for (final transformer in perLogTransformers) {
transformer(span, record);
}
}
// Transformers may wrap the original root in a new parent span.
// Always render starting from the current root so wrappers (e.g. Bordered)
// that become ancestors of the original span are included.
renderSpan(span.root, buffer);
}