Cómo escribir en un registro de eventos mediante Visual C++

Seleccione idioma Seleccione idioma
Id. de artículo: 815661 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Visual C# .NET de este artículo, consulte 307024.
Para obtener una versión de Microsoft Visual Basic .NET de este artículo, consulte 301279.

Este artículo hace referencia a los siguientes espacios de nombres de la Biblioteca de clases de Microsoft .NET Framework:
  • sistema
  • System.Diagnostics
Expandir todo | Contraer todo

En esta página

INTRODUCCIÓN

Este artículo paso a paso describe cómo agregar sus propias entradas al registro de sucesos del sistema operativo mediante Microsoft .NET Framework.

Más información

Requisitos

En la lista siguiente se describen el hardware, software, infraestructura de red y service packs que necesita:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server o Windows NT 4.0 Server
  • Microsoft Visual Studio .NET
  • Microsoft Visual Studio 2005

Escribir en un registro de sucesos

El registro de sucesos constituye un sistema centralizado y estandarizado para que las aplicaciones registren eventos importantes de hardware y de software. Windows proporciona una interfaz de usuario estándar para ver los registros: el Visor de sucesos. Mediante el componente EventLog de tiempo de ejecución de lenguaje comunes, puede conectar con registros de sucesos existentes fácilmente, en equipos locales y remotos y escribir entradas en estos registros. También puede leer entradas de registros existentes y crear sus propios registros de evento personalizados. En su forma más sencilla, grabar en un registro de sucesos implica varios pasos para crear una aplicación de ejemplo.

Para ello, siga estos pasos:
  1. Inicie Visual Studio .NET o Visual Studio 2005.
  2. Cree un nuevo proyecto de aplicación de C++ administrado de Visual C++.

    Nota En Visual C++ .NET 2003, siga estos pasos:
    1. En Tipos de proyecto , haga clic en Proyectos de Visual C++ .
    2. En plantillas , haga clic en Aplicación de consola (. NET) .
    En Visual C++ 2005, siga estos pasos:
    1. En Tipos de proyecto , haga clic en Visual C++ .
    2. En plantillas , haga clic en Aplicación de consola CLR .
  3. Agregar una referencia a system.dll agregando la línea siguiente al código:
    #using <system.dll>
  4. Utilizar la mediante Directiva de los espacios de nombres System y System::Diagnostics por lo que no tengan que calificar las declaraciones de estos espacios de nombres más adelante en el código. Debe utilizar las instrucciones siguientes antes que cualquier otra declaración:
    using namespace System;
    using namespace System::Diagnostics;
  5. Para escribir en un registro de eventos, debe tener varias piezas de información: el mensaje, el nombre del registro que desee escritura (se crea si no existe) y una cadena que representa el origen del evento. Puede registrar un origen determinado con un único registro de sucesos; si desea escribir mensajes en más de un registro, debe definir varios orígenes.
    String *sSource;
    	String *sLog;
    	String *sEvent;
    
    	sSource = new String("dotNET Sample App1");
    	sLog = new String("Application1");
    	sEvent = new String("Sample Event1");
    
  6. Utilizar dos métodos estáticos de la clase EventLog para comprobar si el origen existe y si el origen no existe, para crear este origen asociado con un determinado registro de eventos. Si el nombre de registro que especifique no existe, el nombre se crea automáticamente al escribir la primera entrada en el registro. De forma predeterminada, si no proporciona un nombre de registro en el método CreateEventSource , el archivo de registro se denominará aplicación Log.
    if(!EventLog::SourceExists(sSource)) EventLog::CreateEventSource(sSource,sLog);
    
  7. Para escribir un mensaje en un registro de eventos, puede utilizar el método estático EventLog.WriteEntry . Este método tiene varias versiones diferentes sobrecargadas. El código de ejemplo siguiente muestra el método más sencillo (tiene una cadena de origen y el mensaje) y uno de los métodos más complejos (que permite especificar el ID. de suceso y el tipo de suceso):
    EventLog::WriteEntry(sSource,sEvent);
    	EventLog::WriteEntry(sSource, sEvent, EventLogEntryType::Warning, 235);
  8. Guarde la aplicación. Ejecute la aplicación y, a continuación, compruebe el registro de aplicación en el Visor de sucesos para ver los nuevos sucesos.

Completar lista de código en 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 = new String("dotNET Sample App1");
	sLog = new String("Application1");
	sEvent = new String("Sample Event1");

 if(!EventLog::SourceExists(sSource))
   EventLog::CreateEventSource(sSource,sLog);

	EventLog::WriteEntry(sSource,sEvent);
	EventLog::WriteEntry(sSource, sEvent,
		EventLogEntryType::Warning, 234);
	return 0;
}

Completar lista de código en Visual C++ 2005

#include <tchar.h>
#include <stdafx.h>
#using <system.dll>
#using <mscorlib.dll>

using namespace System;
using namespace System::Diagnostics;

int main()
{
	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;
}

Propiedades

Id. de artículo: 815661 - Última revisión: miércoles, 11 de enero de 2006 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard
  • Microsoft Visual C++ .NET 2002 Standard
Palabras clave: 
kbmt kbdebug kbhowtomaster kbeventlog kbhowto KB815661 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 815661

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com