首先,在Web.config文件中定义事件记录器的配置。示例如下:
然后,定义一个类来加载配置并创建事件日志记录器的实例。示例如下:
using System.Configuration;
using System.Diagnostics;
public static class EventLoggerFactory
{
public static EventLog GetEventLog(string name)
{
var settings = ConfigurationManager.GetSection("logging/eventLog") as EventLogSettingsSection;
var logSettings = settings?.EventLogs[name];
if (logSettings == null)
{
throw new ConfigurationErrorsException($"The event log '{name}' is not defined in the configuration.");
}
return new EventLog
{
Log = logSettings.LogName,
MachineName = logSettings.MachineName,
Source = logSettings.Source
};
}
}
最后,在应用程序的任何地方调用EventLoggerFactory.GetEventLog(string name)方法来获得指定名称的事件日志记录器实例。示例如下:
var logger1 = EventLoggerFactory.GetEventLog("MyEventLog1");
var logger2 = EventLoggerFactory.GetEventLog("MyEventLog2");
logger1.WriteEntry("Log entry in MyEventLog1");
logger2.WriteEntry("Log entry in MyEventLog2");