Pular para o conteúdo principal

Logging no console

Durante o desenvolvimento, a combinação de SimpleLineSink e DefaultSink cobre a maioria dos casos.

Configuração recomendada

import 'package:flutter/foundation.dart';
import 'package:structured_logger/structured_logger.dart';

final logger = StructureLogger();

void setupLogging() {
if (kDebugMode) {
logger.addSink(SimpleLineSink());
logger.addSink(DefaultSink());
}
}
  • SimpleLineSink — leitura rápida no terminal (flutter run).
  • DefaultSink — inspeção no Flutter DevTools e no painel de logs do IDE.

Níveis de log

Use LogLevel para classificar eventos:

await logger.log('App started', level: LogLevel.info);
await logger.log('Cache miss for {key}', level: LogLevel.debug, data: {'key': 'user_prefs'});
await logger.log('Retry {attempt} of {max}', level: LogLevel.warning, data: {'attempt': 2, 'max': 5});
await logger.log('Request failed: {error}', level: LogLevel.error, data: {'error': 'timeout'});
await logger.log('Frame {n} rendered', level: LogLevel.verbose, data: {'n': 1204});
NívelUso típico
verboseTraço fino, alto volume
debugDiagnóstico de desenvolvimento
infoFluxo normal da aplicação
warningSituação recuperável ou inesperada
errorFalha que merece atenção

Dicas

  • Registre sinks uma vez na inicialização do app (por exemplo, em main() após WidgetsFlutterBinding.ensureInitialized()).
  • Em builds de release, considere remover SimpleLineSink para evitar print em produção.
  • Para produção, prefira SinkSeq ou um sink customizado que envie para seu backend de observabilidade.