0

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

(而不是“.NET 运行时”?)

如果是这样,怎么办?

4

2 回答 2

1

我在开始菜单中搜索“运行”,打开它,在文本字段中输入“regedit”,然后按“确定”。

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

然后只需在代码中编写:logName.Source = "MySource";

现在它将仅在本地主机中工作。如果您也希望它在服务器中运行 - 只需像第一次一样在服务器中再次打开“运行”,但现在它不会直接打开我们需要的内容,因此您必须跟踪相同的文件夹包含“应用程序”文件夹(您会发现它与本地计算机完全相同),并以相同的方式添加您的资源。

祝你好运 !

于 2011-12-11T08:22:13.280 回答
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 应用程序。

于 2011-12-07T13:53:20.040 回答