自定义事件查看器(EventLog)的“源”列中的文本

时间:2011-12-07 13:44:54

标签: c# .net asp.net-mvc-3 event-log event-viewer

是否可以在事件查看器中写入我想要的源的源列?

(而不是“.NET Runtime”?)

如果是这样,怎么样?

2 个答案:

答案 0 :(得分:1)

我在开始菜单中搜索“run”,打开它,在文本字段中我写了“regedit”并按下“OK”。

现在,我进入“eventlog”文件夹,右键单击“Application”文件夹,选择New =>键,然后将其命名为我的项目名称(事件查看器中的源列中实际显示的内容)。

然后只需写入代码:logName.Source = "MySource";

现在它只能在localhost中使用。如果你想让它在服务器中运行 - 只需在服务器中再次打开“运行”,就像你第一次那样,但现在它不会直接打开我们需要的东西,所以你必须跟踪相同的文件夹包含“应用程序”文件夹(您可以在本地计算机中的相同位置找到它),并以相同的方式添加您的活动。

祝你好运!

答案 1 :(得分:0)

您可以以编程方式配置EventLogTraceListener跟踪侦听器:

var tl = new EventLogTraceListener("MyEventLogSource");
Trace.Listeners.Add(tl);

或使用app / web.config:

<system.diagnostics>
    <trace autoflush="true">
        <listeners>
            <add 
                name="EventLogger" 
                type="System.Diagnostics.EventLogTraceListener" 
                initializeData="MyEventLogSource" />
        </listeners>
    </trace>
</system.diagnostics>

然后当你追踪某些内容时,它将使用配置的跟踪侦听器:

Trace.TraceInformation("some info");

请记住,您需要特殊权限才能创建自定义跟踪侦听器。如果EventLog中不存在自定义源,则先前的代码将尝试创建它,如果它没有足够的权限则会失败。因此,一种可能性是在部署应用程序时以管理员身份创建跟踪侦听器,尤其是当此应用程序在某些低权限帐户(如ASP.NET应用程序)下运行时。