Csharp/C Sharp/Windows/Event Log

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

Check Event Source Existance and Create Event Source

<source lang="csharp">

using System; using System.Diagnostics; class MainClass {

   public static void Main() {
       if (!EventLog.SourceExists("C#")) {
           EventLog.CreateEventSource("C#", "Application");
       }
       EventLog.WriteEntry(
           "C#",                          // 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>


Get first 5 message from system event log

<source lang="csharp">

 using System;
 using System.Resources;
 using System.Drawing;
 using System.Collections;
 using System.Windows.Forms;
 using System.Resources;
 using Microsoft.Win32;
 // For event log.
 using System.Diagnostics;
 class Test
 {
   static void Main(string[] args)
   {
     EventLog log = new EventLog();
     log.Log = "Application";
     log.Source = "www.nfex.ru";
     log.WriteEntry("message from my own exa,ple...");
     
     // Display the first 5 entries in the Application log.
     for(int i = 0; i < 5; i++)
     {
               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, 
           "Application Log entry:");
     }
     log.Close();
   }
 }
  
          
      </source>


Removes the registration for an event source if it has been registered

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// RemSrc.cs -- Removes the registration for an event source if // it has been registered. // // Compile this program with the following command line: // C:>csc RemSrc.cs using System; using System.Diagnostics; namespace nsEventLogs {

   public class RemSrc
   {
       static public void Main (string [] args)
       {
           if (args.Length == 0)
           {
               Console.WriteLine ("Please enter an event source to remove.");
               Console.WriteLine ("Usage: RemSrc [source]");
               return;
           }
           if (EventLog.SourceExists (args[0]))
           {
               Console.WriteLine ("Deleting event log source " + args[0]);
               EventLog.DeleteEventSource (args[0]);
           }
       }
   }

}


      </source>


Specify EventLogEntryType

<source lang="csharp">

using System; using System.Diagnostics; class MainClass {

   public static void Main() {
       if (!EventLog.SourceExists("C#")) {
           EventLog.CreateEventSource("C#", "Application");
       }
       EventLog.WriteEntry(
           "C#",                          // 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>


Write Message to system event log

<source lang="csharp">

 using System;
 using System.Resources;
 using System.Drawing;
 using System.Collections;
 using System.Windows.Forms;
 using System.Resources;
 using Microsoft.Win32;
 // For event log.
 using System.Diagnostics;
 class Test
 {
   static void Main(string[] args)
   {
     EventLog log = new EventLog();
     log.Log = "Application";
     log.Source = "www.nfex.ru";
     log.WriteEntry("message from my own exa,ple...");
     
     // Display the first 5 entries in the Application log.
     for(int i = 0; i < 5; i++)
     {
               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, 
           "Application Log entry:");
     }
     log.Close();
   }
 }
  
          
      </source>


Write the Event Log Entry type as Information

<source lang="csharp">


using System; using System.Diagnostics; class MainClass {

   public static void Main() {
       string source = "EventSource";
       string log = "MainClass.LOG";
       EventLog el = new EventLog();
       if (!EventLog.SourceExists(source)) {
           EventLog.CreateEventSource(source, log);
       }
       el.Source = source;
       String message = "Starting Up";
       el.WriteEntry(message, EventLogEntryType.Information);
       message = "Processing";
       el.WriteEntry(message, EventLogEntryType.Information);
       message = "Shutting down";
       el.WriteEntry(message, EventLogEntryType.Information);
       el = new EventLog();
       if (!EventLog.SourceExists(source)) {
           Console.WriteLine("Event Log does not exist!");
           return;
       }
       el.Source = source;
       foreach (EventLogEntry entry in el.Entries) {
           Console.WriteLine("\tEntry: " + entry.Message);
       }
       EventLog.Delete(log);
   }

}

      </source>