事件日志WriteEntry不会写入日志指定,而是应用程序日志 [英] EventLog WriteEntry does not write to designated log, but to Application log

查看:834
本文介绍了事件日志WriteEntry不会写入日志指定,而是应用程序日志的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有,我想B上的记录器通过MEF实例编写条目事件日志$ B $的应用程序。
我创建了一个派生类,要能先用它来执行日志初始化

I have an application where I want to write entries to event log The logger is instantiated through MEF. I created a derived class, to be able to perform the log initializations prior of using it.

我的代码如下:

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;
        }
    }
} 



然而,logger不写入到我指定,Pool_Log日志,但在应用程序日志中。

However, the logger does not write into the log I specify, Pool_Log, but in Applications log.

任何想法,为什么出现这种情况?

Any idea why this happens?

修改

我EXACT引用从其他项目相同的成分,在这种情况下,它写道:正确的事件日志!

I referenced EXACT the same component from other project, and in this situation it wrote to the correct EventLog !!!

我明白!

感谢

推荐答案

您可以尝试以下方法:

evntSource = "MySource";

evntLog = "MyLog"; //This replace Application!
evntEvent = "My Event";
if (!EventLog.SourceExists(evntSource))
    EventLog.CreateEventSource(evntSource,evntLog); 

EventLog.WriteEntry(evntSource,evntEvent);

这篇关于事件日志WriteEntry不会写入日志指定,而是应用程序日志的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆