Gravar entradas em um log de eventos usando o Visual C++
Este artigo descreve como adicionar suas próprias entradas ao log de eventos do sistema operacional usando o Microsoft .NET Framework.
Versão original do produto: Visual C++
Número de KB original: 815661
Requisitos
Visual Studio .NET
Gravar entradas em um log de eventos
O log de eventos fornece uma maneira centralizada e padrão para que seus aplicativos registrem eventos importantes de software e hardware. O Windows fornece uma interface de usuário padrão para exibir os logs: o Visualizador de Eventos. Usando o componente EventLog em tempo de execução de linguagem comum, você pode se conectar facilmente a logs de eventos existentes, em computadores locais e remotos, e gravar entradas nesses logs. Você também pode ler entradas de logs existentes e criar seus próprios logs de eventos personalizados. Em seu formulário mais simples, gravar em um log de eventos envolve várias etapas para criar um aplicativo de exemplo.
Para fazer isso, siga estas etapas:
Inicie o Visual Studio .NET.
Crie um novo projeto de aplicativo C++ Gerenciado do Visual C++.
Adicione uma referência a system.dll adicionando a seguinte linha ao código:
#using <system.dll>
Use a
using
diretiva nosSystem
namespaces eSystem::Diagnostics
para que você não precise qualificar declarações desses namespaces posteriormente em seu código. Você pode usar as seguintes instruções antes de qualquer outra declaração:using namespace System; using namespace System::Diagnostics;
Para gravar em um log de eventos, você deve ter várias informações:
- Sua mensagem
- O nome do log para onde você deseja gravar (ele é criado se ele ainda não existir)
- Uma cadeia de caracteres que representa a origem do evento
Você pode registrar uma fonte específica com apenas um único log de eventos. Se você quiser gravar mensagens em mais de um log, você deve definir várias fontes.
String^ sSource; String^ sLog; String^ sEvent; sSource = gcnew String("dotNET Sample App1"); sLog = gcnew String("Application1"); sEvent = gcnew String("Sample Event1");
Use dois métodos estáticos da
EventLog
classe para marcar se a origem existe e, se a origem não existir, para criar essa fonte associada a um log de eventos específico. Se o nome de log especificado não existir, o nome será criado automaticamente quando você grava sua primeira entrada no log. Por padrão, se você não fornecer um nome de log para oCreateEventSource
método, o arquivo de log será chamado de Log de Aplicativo.if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
Para gravar uma mensagem em um log de eventos, você pode usar o método
EventLog.WriteEntry
estático . Esse método tem várias versões sobrecarregadas diferentes. O código de exemplo a seguir mostra o método mais simples (que usa uma cadeia de caracteres de origem e sua mensagem) e um dos métodos mais complexos (que dá suporte à especificação da ID do evento e do tipo de evento):EventLog::WriteEntry(sSource,sEvent); EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
Salve seu aplicativo. Execute seu aplicativo e marcar o aplicativo entre no Visualizador de Eventos para ver seus novos eventos.
Lista de códigos completa no Visual C++ .NET
#include <tchar.h>
#using <system.dll>
#using <mscorlib.dll>
using namespace System;
using namespace System::Diagnostics;
int _tmain()
{
String^ sSource;
String^ sLog;
String^ sEvent;
sSource = gcnew String("dotNET Sample App1");
sLog = gcnew String("Application1");
sEvent = gcnew String("Sample Event1");
if(!EventLog::SourceExists(sSource))
EventLog::CreateEventSource(sSource,sLog);
EventLog::WriteEntry(sSource,sEvent);
EventLog::WriteEntry(sSource, sEvent,
EventLogEntryType::Warning, 234);
return 0;
}
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários