Uma das principais formas de diagnosticar o mau funcionamento do software já em execução no computador do usuário é manter logs de eventos - logs. Normalmente, eles registram informações sobre as inicializações, bem como informações importantes sobre o estado do processo e o ambiente do sistema no caso de uma falha crítica. Você pode criar logs por seus próprios meios e usando serviços especiais de sistemas operacionais.
É necessário
- - tradutor da linguagem de programação utilizada;
- - possivelmente um SDK da plataforma Windows;
- - possivelmente um pacote de desenvolvimento para glibc.
Instruções
Passo 1
Analise os termos de uso e faça os requisitos para o subsistema desenvolvido, componente ou biblioteca que fará os logs. Responda às perguntas sobre em qual plataforma ou plataformas ele deve operar, qual será sua API.
Passo 2
De acordo com os recursos de funcionamento identificados e a API fornecida, crie um modelo para o subsistema de registro. Comece a implementar sua funcionalidade.
etapa 3
A opção mais simples de registro é criar arquivos independentemente em um local determinado pela configuração do aplicativo e, em seguida, gravar dados em qualquer formato neles. Use funções de biblioteca padrão C (fopen, fclose, fwrite), objetos de fluxo de biblioteca padrão C ++ (ofstream), classes de estrutura usadas (como CFile, QFile) ou funções de API do sistema operacional (CreateFile, WriteFile no Windows).
Passo 4
Implemente o registro usando a API syslog em sistemas operacionais compatíveis com UNIX. As funções da API syslog são declaradas no arquivo de cabeçalho syslog.h. Conecte-o no lugar certo no código-fonte do seu projeto.
Etapa 5
Conecte-se ao serviço syslog usando a chamada de função openlog. Como parâmetros, passe um ponteiro para uma string contendo o identificador da aplicação ou componente que irá escrever, flags de opções e uma máscara de eventos a serem passados para o log. Use chamadas para as funções syslog e vsyslog para adicionar entradas ao log. Chame a função closelog para se desconectar do serviço. Um exemplo simples de código syslog pode ser: openlog ("prefixo", LOG_NDELAY | LOG_CONS | LOG_PID, LOG_LOCAL1); syslog (LOG_INFO, "% s", "Info"); syslog (LOG_NOTICE, "% s", "Aviso"); closelog (); Faz sentido conectar-se ao syslog ao inicializar o aplicativo e desconectar-se ao encerrar.
Etapa 6
Em sistemas operacionais Windows, use a API EventLog para adicionar entradas aos logs do sistema. Chame RegisterEventSource para obter o descritor de log na máquina especificada. Use este identificador ao chamar a função ReportEvent que grava no log. Quando terminar, chame DeregisterEventSource para fechar a conexão e liberar os recursos alocados por RegisterEventSource. O exemplo mais simples de trabalhar com EventLog pode ser: HANDLE h =:: RegisterEventSource (NULL, "AnySource"); ASSERT (h! = NULL);:: ReportEvent (h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 3, 0, "Text1Text2Text3", NULL);:: DeregisterEventSource (h); Assim como syslog, faz sentido chamar RegisterEventSource no início e DeregisterEventSource no encerramento do aplicativo.