我有一个应用程序,需要将记录写入事件日志。这个日志记录器通过MEF实例化。
我创建了一个派生类,以便在使用日志记录器之前执行日志初始化。
下面是我的代码:
我创建了一个派生类,以便在使用日志记录器之前执行日志初始化。
下面是我的代码:
public class WinEventLog : EventLog, ILogger
{
private const string LOG_SourceName = "DataGen_Source";
private const string LOG_SysLogName = "Pool_Log";
private bool _isInitialized = false;
public WinEventLog()
: base()
{
Initialize();
}
public void LogMessage(MessageLevel level, string message)
{
WriteEntry(message, level.EventLogType());
}
public void LogMessage(string source, MessageLevel level, string message)
{
WriteEntry(source, message, level.EventLogType());
}
public void Initialize()
{
if (!_isInitialized)
{
this.BeginInit();
this.EndInit();
if (!System.Diagnostics.EventLog.SourceExists(LOG_SourceName))
{
System.Diagnostics.EventLog.CreateEventSource(
LOG_SourceName, LOG_SysLogName);
}
Source = LOG_SourceName;
Log = LOG_SysLogName;
_isInitialized = true;
}
}
}
然而,记录器没有写入我指定的日志池(Pool_Log),而是写入了应用程序日志。
你知道为什么会这样吗?
编辑
我从其他项目中引用了完全相同的组件,在这种情况下它写入了正确的事件日志!!!
我很困惑!
谢谢