Csharp/CSharp Tutorial/Windows/EventLog

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Add entry to event log inside a service

<source lang="csharp">using System; using System.Collections; using System.ruponentModel; using System.Data; using System.Diagnostics; using System.ServiceProcess; public class Service1 : System.ServiceProcess.ServiceBase {

 public Service1()
 {
   this.ServiceName = "MyFirstService";
 }
 static void Main()
 {
   System.ServiceProcess.ServiceBase[] ServicesToRun;
   ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
   System.ServiceProcess.ServiceBase.Run(ServicesToRun);
 }
 protected override void OnStart(string[] args)
 {
   EventLog.WriteEntry( "Hello from MyFirstService" );
 }
 protected override void OnStop()
 {
   EventLog.WriteEntry( "Goodbye from MyFirstService" );
 }

}</source>

Create event source and write an event to the event log

<source lang="csharp">using System; using System.Diagnostics; class MainClass {

   public static void Main () 
   {
       if (!EventLog.SourceExists("MyEventSource")) 
       {
           EventLog.CreateEventSource("MyEventSource", "Application");
       }
       // Write an event to the event log.
       EventLog.WriteEntry(
           "MyEventSource",               // Registered event source
           "A simple test event.",        // Event entry message
           EventLogEntryType.Information, // Event type
           1,                             // Application specific ID
           0,                             // Application specific category
           new byte[] {10, 55, 200}       // Event data
       );
   }

}</source>

Display First 5 Entries in your system Event log

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using Microsoft.Win32; using System.Diagnostics; public class MainClass{

  public static void Main(){
   EventLog log = new EventLog();
   for(int i = 0; i < 5; i++)
   {
     try
     {
       Console.WriteLine("Message: " + log.Entries[i].Message + "\n" +  
         "Box: " + log.Entries[i].MachineName + "\n" +
         "App: " + log.Entries[i].Source + "\n" +
         "Time entered: " + log.Entries[i].TimeWritten);
     }
     catch{}
   }
   log.Close();
  }

}</source>

Is a event source in the event log

<source lang="csharp">using System; using System.Collections; using System.ruponentModel; using System.Data; using System.Diagnostics; using System.ServiceProcess; public class Service1 : System.ServiceProcess.ServiceBase {

   private System.Diagnostics.EventLog eventLog1;
   public Service1()
   {
       this.eventLog1 = new System.Diagnostics.EventLog();
       ((System.ruponentModel.ISupportInitialize)(this.eventLog1)).BeginInit();
       this.eventLog1.Log = "MyCustomLog";
       this.eventLog1.Source = "CustomEventService2";
       this.AutoLog = false;
       this.ServiceName = "CustomEventService";
       ((System.ruponentModel.ISupportInitialize)(this.eventLog1)).EndInit();
   }
   // The main entry point for the process
   static void Main()
   {
       System.ServiceProcess.ServiceBase[] ServicesToRun;
       ServicesToRun = new System.ServiceProcess.ServiceBase[] { new Service1() };
       System.ServiceProcess.ServiceBase.Run(ServicesToRun);
   }
   protected override void OnStart(string[] args)
   {
       if ( !EventLog.SourceExists( eventLog1.Source ) )
       {
           EventLog.CreateEventSource( eventLog1.Source, eventLog1.Log );
       }
       eventLog1.WriteEntry( "Hello", EventLogEntryType.Information );
   }
   protected override void OnStop()
   {
       eventLog1.WriteEntry( "Goodbye", EventLogEntryType.Warning );
   }

}</source>

Write entry to event log

<source lang="csharp">using System; using System.Drawing; using System.Collections; using System.ruponentModel; using System.Windows.Forms; using System.Data; using Microsoft.Win32; using System.Diagnostics; public class MainClass{

  public static void Main(){
   EventLog log = new EventLog();
   log.Log = "Application";
   log.Source = "MainClass";
   log.WriteEntry("Hey");
   log.Close();
  }

}</source>