以编程方式创建自定义Eventlog视图

时间:2015-04-17 09:27:59

标签: c# event-log

我想以编程方式在C#应用程序中创建自定义Eventlog视图。

这是在Microsoft Windows的Eventlog应用程序的帮助下创建自定义Eventlog视图的方法:

create custom view

我在类System.Diagnostics.EventLog中搜索了一个与Microsoft的Eventlog应用程序中的按钮相同的方法。可悲的是,我找不到任何能够满足我需求的功能。

有没有人以编程方式在C#中创建自定义Eventlog视图或知道一种有效的方式?

2 个答案:

答案 0 :(得分:4)

如果刚刚测试了方法here

try
{
    XmlTextWriter view = new XmlTextWriter("C:\\ProgramData\\Microsoft\\Event Viewer\\Views\\View_1.xml", Encoding.Unicode);
    // Root.
    view.WriteStartDocument();
    view.WriteStartElement("ViewerConfig");
    //Create Node for queryConfig
    view.WriteStartElement("QueryConfig");
    view.WriteStartElement("QueryParams");
    view.WriteStartElement("UserQuery");
    view.WriteEndElement();
    view.WriteEndElement();
    //QueryNode
    view.WriteStartElement("QueryNode");
    //....

    view.Close();
}
catch (XmlException ex)
{
    Console.WriteLine(ex.StackTrace);
}

这为我创建了一个自定义视图。 enter image description here

基本上,自定义视图是存储在C:\\ProgramData\\Microsoft\\Event Viewer\\Views\\下的xml文件,您可以通过创建xml文档来自行滚动。

如果您想知道如何格式化这样的xml文档,您可以随时回退到C:\ProgramData\Microsoft\Event Viewer\Views\ServerRoles

下的服务器角色文件夹中已预先定义的查询

答案 1 :(得分:1)

可能的解决方案是:

  1. 使用eventvwr.msc界面创建所需的自定义视图(显示在您提供的图像上)。
  2. 将其导出为.xml文件,并对其结构进行研究/研究
  3. 编写代码以根据您的需要生成此类.xml文件,或者使用已经精心设计和导出的文件,仅替换适当的"占位符" (事件代码,事件来源等)
  4. 使用eventvwr.exe选项/v运行eventvwr.exe /v:MyView.xml(使用eventvwr.exe /?的更多选项)