【问题标题】:Read event log in C#在 C# 中读取事件日志
【发布时间】:2011-03-10 01:04:25
【问题描述】:

我正在尝试读取我的应用程序 EventLoggingApp 的事件日志。问题是读取我的单一来源(EventLoggingApp)的日志。

此代码读取每个来源的日志。问题是什么?有什么建议吗?

static void ReadEvenLog()
{
    string eventLogName = "Application";
    string sourceName = "EventLoggingApp";
    string machineName = "Tom";

    EventLog eventLog = new EventLog();
    eventLog.Log = eventLogName;
    eventLog.Source = sourceName;
    eventLog.MachineName = machineName;

    foreach (EventLogEntry log in eventLog.Entries)
    {
        Console.WriteLine("{0}\n",log.Source);
    }
}

【问题讨论】:

    标签: c# events logging


    【解决方案1】:

    如果您连接到 localhost,请将 MachineName 设置为“。” 检查用户是否有权从事件日志中读取

    【讨论】:

    • 因为他从他的机器上得到了所有的日志,所以没有安全问题。
    【解决方案2】:

    在 MSDN 上查看此 article。您无法按来源读取事件日志条目。只有日志名称很重要。相反,您可以通过验证 foreach 循环中每个条目的 Source 属性来为您的应用程序或过滤条目创建单独的事件日志。

    【讨论】:

    • 谢谢,我来自斯洛伐克,你的英语比我的好得多:)
    【解决方案3】:

    MSDN (1)(2) 说 Source 仅用于编写事件日志。

    仅从日志中读取时无需指定源。您只能为 EventLog 实例指定日志名称和 MachineName(服务器计算机名称)属性。在任何一种情况下,Entries 成员都会自动填充事件日志的条目列表。您可以为此列表中的项目选择适当的索引来读取各个条目。 (1)

    【讨论】:

      【解决方案4】:

      我不确定您要在控制台上打印什么。如果它是您尝试打印的每个事件日志条目中的 message,则在 foreach 循环内,您应该改为:

      Console.WriteLine(log.Message + "\n");
      

      【讨论】:

        【解决方案5】:

        试试这个:

        EventLog log = new EventLog("Security");
        var entries = log.Entries.Cast<EventLogEntry>()
                                 .Where(x => x.InstanceId == 4624)
                                 .Select(x => new
                                 {
                                     x.MachineName,
                                     x.Site,
                                     x.Source,
                                     x.Message
                                 }).ToList();
        

        【讨论】:

        • 解释一下这段代码 sn-p 实现了什么会很好......
        • @Domenico 你能解释一下如何获得 InstanceId 吗?会很有帮助吗?谢谢!
        • @Darem 我在安全 Windows 注册表的 Event ID 列中找到了这个
        • 错误:System.Security.SecurityException:'请求的注册表访问不被允许。'
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多