c# - 以编程方式创建自定义事件日志 View

标签 c# event-log

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

这是在 Microsoft Windows 的事件日志应用程序的帮助下创建自定义事件日志 View 的方法:

create custom view

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

有没有人曾经在 C# 中以编程方式创建自定义事件日志 View 或知道一种可行的方法?

最佳答案

如果刚刚测试发现的方法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);
}

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

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

如果您想知道如何格式化这样的 xml 文档,您可以随时回退到 C:\ProgramData\Microsoft\Event Viewer\Views\ServerRoles< 下的 Server Roles 文件夹中已经预定义的查询

关于c# - 以编程方式创建自定义事件日志 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695358/

相关文章:

windows - 如何枚举 EventLog 的所有注册源

c# - Json反序列化对象错误

c# - 如何使SQL表属性唯一(不可重复)

c# - 为单个请求禁用证书验证

c# - +/- 登录 TimeSpan 的 ParseExact()?

c# - JSON 数据结构 - JSON 到对象 - 最佳实践

c# - 谁知道mc.exe(Message Compiler)怎么用?

c# - 为什么我的事件日志源一直放在注册表中的 "Application"而不是 <log> 下?

c++ - 如何使用 EvtQuery 函数查找日志文件的大小?

powershell - Powershell Limit-EventLog OverflowAction不起作用