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'},
);