Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式创建自定义事件日志视图_C#_Event Log - Fatal编程技术网

C# 以编程方式创建自定义事件日志视图

C# 以编程方式创建自定义事件日志视图,c#,event-log,C#,Event Log,我想以编程方式在C#应用程序中创建自定义事件日志视图 以下是如何在Microsoft Windows的事件日志应用程序的帮助下创建自定义事件日志视图: 我在类System.Diagnostics.EventLog中搜索了一个方法,该方法与Microsoft的EventLog应用程序中的按钮相同。遗憾的是,我找不到任何满足我需求的功能 有没有人曾经以编程方式在C#中创建过自定义事件日志视图,或者知道一种工作方式?可能的解决方案是: 使用eventvwr.msc界面(显示在您提供的图像上)创建所需

我想以编程方式在C#应用程序中创建自定义事件日志视图

以下是如何在Microsoft Windows的事件日志应用程序的帮助下创建自定义事件日志视图:

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

有没有人曾经以编程方式在C#中创建过自定义事件日志视图,或者知道一种工作方式?

可能的解决方案是:

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

  • 如果只是测试方法,发现:

    这为我创建了一个自定义视图。

    基本上,自定义视图是存储在
    C:\\ProgramData\\Microsoft\\Event Viewer\\views\\
    下的xml文件,您只需创建一个xml文档即可滚动自己的视图


    如果您想知道如何格式化这样的xml文档,您可以始终返回到服务器角色文件夹中已预定义的查询,该文件夹位于
    C:\ProgramData\Microsoft\Event Viewer\Views\ServerRoles

    此按钮的具体功能是什么?(甚至一个屏幕截图也可以看到它的作用help@Thomas遗憾的是,我无法在我的帖子中添加图片,因为我的声誉太低。这是一张图片,谢谢,效果很好。不过,现在我知道有一个包含.xml文件的文件夹,我可能会事先创建.xml并将其移到该文件夹中以编程的方式。我也会这样做。当发出请求的VM并运行配置脚本来创建这些视图时,它可能会派上用场。这基本上与Serv使用的方法相同,并且有效。谢谢。
    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);
    }