Skip to main content

StructureLogger

Main package class. Centralizes log emission and distributes each event to all registered LogSink instances.

Constructor

StructureLogger()

Creates an empty logger with no sinks.

Methods

log

Future<void> log(
String message, {
LogLevel level = LogLevel.info,
Map<String, dynamic>? data,
})

Emits a structured event.

ParameterDescription
messageMessage template with {key} placeholders
levelEvent level (default: LogLevel.info)
dataProperties bound to placeholders

Internally builds a LogModel and calls write() on each sink sequentially.

addSink

void addSink(LogSink sink)

Registers a sink. Events emitted after registration are delivered to it.

removeSink

void removeSink(LogSink sink)

Removes a sink. Future events are no longer delivered to it.

Example

final logger = StructureLogger();
logger.addSink(SimpleLineSink());

await logger.log(
'Session {sessionId} created',
level: LogLevel.info,
data: {'sessionId': 'abc-123'},
);