我一直在使用以下基本代码,我从网站上使用System.Diagnostics的EventLog类将消息写入Windows事件日志
class Program
{
static void Main(string[] args)
{
WriteEventLogEntry("This is an entry in the event log");
}
private static void WriteEventLogEntry(string message)
{
// Create an instance of EventLog
System.Diagnostics.EventLog eventLog = new System.Diagnostics.EventLog();
// Check if the event source exists. If not create it.
if (!System.Diagnostics.EventLog.SourceExists("TestApplication"))
{
System.Diagnostics.EventLog.CreateEventSource("TestApplication", "Application");
}
// Set the source name for writing log entries.
eventLog.Source = "TestApplicationNotExisting";
// Create an event ID to add to the event log
int eventID = 8;
// Write an entry to the event log.
eventLog.WriteEntry(message,
System.Diagnostics.EventLogEntryType.Error,
eventID);
// Close the Event Log
eventLog.Close();
}
}
我已经调整了上面的代码,以便选择的Source是我以前没有使用CreateEventSource方法创建的。我希望这会抛出一个异常,但它运行得非常好,我在源代码“TestApplicationNotExisting”的事件日志中有一条消息。
为什么这不会引发异常?如果我可以动态选择源,那么CreateEventSource方法有什么意义呢?