2009-08-18 5 views
0

Ich habe eine Konsolenanwendung, die eine geplante Aufgabe ausgeführt wird, und was ich tun möchte, ist es in ein Ereignisprotokoll in einem catch-Block schreiben zu lassen. Ich habe versucht mitSchreiben an Ereignisprotokoll Windows Geplante Aufgabe

EventLog.WriteEntry("My App Name","Error Message - " ex.ToString()); 

aber aus irgendeinem Grund ist es nicht den Fehler schreiben. Mache ich etwas falsch?

Dank

Antwort

1

Sie müssen sicherstellen, dass die Event-Quelle vorhanden ist, zum Beispiel:

if (!EventLog.SourceExists("MySource")) 
    EventLog.CreateEventSource("MySource","Application"); 

http://support.microsoft.com/kb/307024

2

Dieser Code ist von MSDN-Website in C#, ich hoffe, dass es Ihnen helfen.

using System; 
using System.Diagnostics; 
using System.Threading; 

class MySample{ 

    public static void Main(){ 

     // Create the source, if it does not already exist. 
     if(!EventLog.SourceExists("MySource")){ 
      EventLog.CreateEventSource("MySource", "MyNewLog"); 
      Console.WriteLine("CreatingEventSource"); 
     } 

     // Create an EventLog instance and assign its source. 
     EventLog myLog = new EventLog(); 
     myLog.Source = "MySource"; 

     // Write an informational entry to the event log.  
     myLog.WriteEntry("Writing to event log."); 

    } 
} 
0

Eine Sache Siehe ist zu beachten, dass es manchmal eine kleine Verzögerung, wenn EventLog.CreateEventSource Aufruf Dies sollten Sie beachten, wenn Sie unmittelbar nach der Erstellung auf die erstellte EventSource zugreifen möchten.