log_custom_printer library Core - Sistema de Logging

Biblioteca de logging para projetos Dart (CLI, servidor, scripts).

Pode ser usada também em apps Flutter; registe a impressora no main antes de emitir logs.

Fornece um sistema completo de logging com:

  • Hierarquia tipada de logs (Debug, Info, Warning, Error)
  • Formatação colorida com códigos ANSI
  • Serialização JSON automática
  • Injeção de dependência via get_it
  • Mixins utilitários para integração fácil

Uso Rápido

import 'package:log_custom_printer/log_custom_printer.dart';

// Configuração inicial (obrigatório no startup)
void main() {
  registerLogPrinter(
    const LogWithColorPrint(),
    config: const ConfigLog(enableLog: true),
  );
  // Em Flutter: runApp(const MyApp());
}

// Usando o mixin (recomendado)
class MinhaClasse with LoggerClassMixin {
  void executar() {
    logDebug('Iniciando processo');
    logInfo('Processo em andamento');

    try {
      // código da aplicação
    } catch (error, stackTrace) {
      logError('Erro: $error', stackTrace);
    }
  }
}

Tipos de Log

Configuração

Configure o comportamento dos logs através de ConfigLog:

final config = ConfigLog(
  enableLog: true,
  onlyClasses: {DebugLog, ErrorLog},
);

Impressoras

Escolha entre diferentes estratégias de impressão:

Classes

ConfigLog Configuração
Configuração para controle de logs na biblioteca.
DebugLog Tipos de Log
Log de depuração (debug) com formatação amarela.
ErrorLog Tipos de Log
Log de erro com formatação vermelha e stack trace.
FileManager Utilitários
Implementação de gerenciamento de arquivos.
IFileManagerType Utilitários
Contrato para operações de leitura, escrita e remoção de arquivos.
ILoggerCacheRepository Core - Sistema de Logging
Contrato para persistência e consulta de logs.
InfoLog Tipos de Log
Log de informação geral com formatação branca.
LogFilterEngine Query
Aplica filtros de tipo e intervalo de data a uma lista de logs.
LoggerAnsiColor Utilitários
Classe para manipulação de cores ANSI em logs.
LoggerCacheRepositoryImpl Utilitários
Implementação concreta de ILoggerCacheRepository usando armazenamento em memória e opcionalmente em arquivo.
LoggerObject Core - Sistema de Logging
Marca base para objetos de log.
LoggerObjectBase Core - Sistema de Logging
Contrato base para objetos de log que podem ser impressos/serializados.
LoggerPersistenceService Utilitários
Serviço de persistência e consulta de logs.
LogPrinterBase Impressoras de Log
Classe base abstrata para impressoras de logs.
LogPrinterService Core - Sistema de Logging
Serviço central que coordena o processo de impressão e armazenamento de logs.
LogQuery Query
Parâmetros de consulta para filtro, ordenação e exportação de logs.
LogSimplePrint Impressoras de Log
Impressora simples de logs.
LogSortEngine Query
Ordena uma lista de logs com base nos parâmetros de LogQuery.
LogWithColorPrint Impressoras de Log
Impressora de logs que preserva cor/estilo ANSI.
StackTraceConverter Utilitários
Conversor JSON para serialização de StackTrace.
WarningLog Tipos de Log
Log de aviso (warning) com formatação verde.

Enums

EnumAnsiColors
Enumeração de cores ANSI disponíveis para formatação de texto em terminais.
EnumLoggerType Utilitários
Define os tipos de mensagens de log que podem ser manipulados.
ExportFormat Core - Sistema de Logging
Formato de exportação de logs.
FileType Utilitários
Tipos de arquivo suportados pelo FileManager.
LogSortField Query
Campo de ordenação de logs.
SortDirection Query
Direção de ordenação.

Mixins

LoggerClassMixin Utilitários
Mixin que fornece métodos utilitários de log para uma classe.

Extensions

DateTimeLoggingExtensions on DateTime Utilitários
Extension para formatação de data/hora em logs.
LoggerEnum on LoggerObjectBase Utilitários
Extensão para mapear objetos de log para o enum EnumLoggerType.

Functions

fetchLogPrinterService() LogPrinterService Core - Sistema de Logging
Resolve o LogPrinterService registrado no get_it.
registerLogPrinter(LogPrinterBase printer, {required ConfigLog config, ILoggerCacheRepository? cacheRepository}) LoggerPersistenceService Core - Sistema de Logging
Registra o LogPrinterBase no get_it para injeção de dependência.
registerLogPrinterColor({ConfigLog? config, int maxLogsInCache = 100, String? cacheFilePath, FileType fileType = FileType.json}) LoggerPersistenceService Core - Sistema de Logging
Registra uma impressora com formatação colorida.
registerLogPrinterSimple({ConfigLog? config, int maxLogsInCache = 100, String? cacheFilePath, FileType fileType = FileType.json}) LoggerPersistenceService Core - Sistema de Logging
Registra uma impressora simples (sem cores).