O CTsLogger é um sistema de registro simples e flexível, projetado especificamente para a criação e depuração de sistemas de negociação em MQL5. A principal vantagem do CTsLogger é a capacidade de ativar temporariamente o modo de depuração para módulos ou seções de código específicos, mantendo um nível de registro global mais baixo. Isso permite que você obtenha um registro detalhado de áreas de código específicas sem se "afogar" em uma enxurrada de mensagens e, em seguida, desative-o com um único comando.
Principais benefícios
- Facilidade de uso: Inicialização mínima e fácil invocação de métodos de registro
- Flexibilidade de depuração: Capacidade de ativar o modo de depuração para módulos individuais, mesmo com um baixo nível de registro global
- Estrutura hierárquica: Suporte a identificadores de módulos hierárquicos para organização lógica
- Gerenciamento de estado: Capacidade de pausar e retomar o modo de depuração sem perder as configurações
- Confiabilidade: Continua a funcionar mesmo com erros no sistema de arquivos (degradação graciosa para a saída do terminal)
- Dependências mínimas: Funciona de forma independente, sem exigir outros componentes
Níveis de registro
O CTsLogger suporta 4 níveis de registro, em ordem crescente de detalhes:
- LOG_LEVEL_ERROR - somente erros
- LOG_LEVEL_WARNING - avisos e erros
- LOG_LEVEL_INFO - mensagens informativas, avisos e erros
- LOG_LEVEL_DEBUG - mensagens de depuração, mensagens informativas, avisos e erros
API completa
Criação e inicialização
- CTsLogger() - construtor
- ~CTsLogger() - destrutor
- Initialize(string logFileName, bool logToTerminal = true) - inicialização do registrador
- SetGlobalLogLevel(ENUM_LOG_LEVEL level) - definição do nível de registro global
Métodos de registro em log
- Error(string moduleId, string message) - registro de erros
- Warning(string moduleId, string message) - registro de aviso
- Info(string moduleId, string message) - registro de mensagens de informação
- Debug(string moduleId, string message) - registro de mensagens de depuração
Controle básico do modo de depuração
- EnableDebugMode(string moduleId) - ativa o modo de depuração para um módulo
- DisableDebugMode(string moduleId) - desativa o modo de depuração de um módulo e de todos os seus módulos filhos
- IsInDebugMode(string moduleId) - verifica se o modo de depuração está ativado
- EnableDebugModeAll() - habilita o modo de depuração para todos os módulos
- DisableDebugModeAll() - desativa o modo de depuração global, preservando as configurações do módulo
Controle avançado do modo de depuração
- PauseDebugMode() - pausa temporariamente o modo de depuração de todos os módulos
- ResumeDebugMode() - retoma o modo de depuração para módulos configurados anteriormente
- IsDebugModePaused() - verifica se o modo de depuração está pausado
- ResetDebugModules() - redefine completamente todos os módulos de depuração
- HasChildDebugModules(string parentModule) - verifica se há módulos filhos no modo de depuração
Consulte CTsLogger-ReadMe.txt para obter mais informações.