在C#中读取事件日志

Tom*_*159 18 c# events logging

我正在尝试为我的应用程序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);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 22

试试这个:

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();
Run Code Online (Sandbox Code Playgroud)

  • 解释一下这个代码片段所实现的效果会很好...... (2认同)

Vya*_*yuk 5

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

  • 谢谢,我来自斯洛伐克,你的英语比我的好得多:) (2认同)

Aik*_*Aik -1

如果连接到本地主机,请将 MachineName 设置为“。” 检查用户是否有权读取事件日志