Sinks
Um sink é um destino de saída que implementa LogSink. Você pode registrar vários sinks no mesmo StructureLogger — cada evento será entregue a todos eles.
Sinks embutidos
SimpleLineSink
Imprime uma linha legível no terminal, interpolando placeholders do template com valores de data:
logger.addSink(SimpleLineSink());
| Entrada | Saída |
|---|---|
mt: "User {id} logged in", data: {id: 7} | User 7 logged in |
Placeholders sem valor correspondente em data são substituídos por string vazia.
DefaultSink
Envia o evento serializado para o log do desenvolvedor Dart (dart:developer):
logger.addSink(DefaultSink());
Útil no Flutter DevTools e durante depuração com flutter run.
SinkSeq
Envia eventos em formato CLEF para um servidor Seq:
logger.addSink(SinkSeq(
'https://seq.example.com',
apiKey: 'your-api-key',
deviceIdentifier: 'my-device',
));
Consulte o guia de integração com Seq para detalhes de configuração e ciclo de vida.
Múltiplos sinks
É comum combinar sinks para desenvolvimento e produção:
final logger = StructureLogger();
if (kDebugMode) {
logger.addSink(SimpleLineSink());
logger.addSink(DefaultSink());
}
logger.addSink(SinkSeq(
seqUrl,
apiKey: apiKey,
deviceIdentifier: deviceId,
));
Sink customizado
Implemente LogSink e registre com addSink. Veja o guia de sink customizado.