format method
Formats record by writing to buffer.
Implementation
@override
void format(LogRecord record, MessageBuffer buffer) {
final consoleBuffer = buffer.console!;
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, consoleBuffer);
}