【问题标题】:Event Log not creted, even with administrative privileges未创建事件日志,即使具有管理权限
【发布时间】:2014-10-23 19:36:11
【问题描述】:

我正在使用以下代码:

public static void ErrorRoutine(Exception e, string obj, string method)
{
    //EventLog.Delete("Info3070");  // uncomment this line to delete log
    EventLog log = new EventLog();
    log.Source = "Helpdesk Case1";
    log.Log = "Info3070";

    if (e.InnerException != null)
    {
        log.WriteEntry("Error in Models, object = " + obj + ", method = " + method + ", inner exception = " +
            e.InnerException.Message, EventLogEntryType.Error);
        throw e.InnerException;
    }
    else
    {
        log.WriteEntry("Error in Models, object = " + obj + ", method = " + method + ", message = " + e.Message,
            EventLogEntryType.Error);
        throw e;
    }
}

它应该在 Windows 事件查看器的事件日志中记录错误,但即使以管理员身份运行也不会这样做。

【问题讨论】:

  • 感谢两位的帮助。我发现了问题,令人尴尬的是根本不是问题,而且我自己在事件查看器中查看了错误的文件夹。不过,您提供了一些关于最佳实践的出色建议。

标签: c# asp.net windows events logging


【解决方案1】:

您必须先定义您的来源,我怀疑“Helpdesk Case1”未知。

【讨论】:

    【解决方案2】:

    如果指定参数的事件日志不存在,你应该先创建它:

    const string sSource = "Helpdesk Case1";
    const string sLog = "Info3070";
    
    if (!EventLog.SourceExists(sSource))
        EventLog.CreateEventSource(sSource, sLog);
    
    EventLog log = new EventLog { Source = sSource, Log = sLog };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-23
      • 1970-01-01
      相关资源
      最近更新 更多