C#从EventRecord.Level获取正确的事件级别

时间:2015-05-22 09:51:54

标签: c# .net events record event-log

我在我的应用程序中包含了一个事件查看器,用户可以在其中查看由应用程序引起的事件列表中的事件列表,包括详细信息,事件ID,来源等。

现在我遇到了一个小问题:就像在Windows的事件查看器中一样,我想根据事件的级别(信息,警告,错误/严重)在列表条目前面显示一个小图标。 / p>

在后面的代码中,我从EventLogReader获取了所有返回EventRecords列表的信息。关于级别,这些EventRecords会公开两个属性:LevelLevelDisplayName。由于LevelDisplayName依赖于文化,因此我必须使用Level - byte?类型。

如何从中获得正确的关卡?我知道有一个StandardEventLevel枚举,但我不知道你是否可以将它与Level匹配,如果是,则如何转换它。我想象的是这样的事情:

switch (__eventRecord.Level)
            {
                case(StandardEventLevel.Informational):
                    __level = "Information";
                    break;
                case(StandardEventLevel.Warning):
                    __level = "Warning";
                    break;
                case(StandardEventLevel.Error):
                case(StandardEventLevel.Critical):
                    __level = "Error";
                    break;
            }

有谁知道如何以正确的方式解决这个问题?

1 个答案:

答案 0 :(得分:0)

Welp,我认为一个简单的演员 - unsigned char* - 没有用,因为有时我似乎没有得到开关案例的结果。事实证明,日志记录中出现了一些问题,它记录了一些事件,如Logneways'或等级0.所以只需施放它就可以了。