ASP.NET错误事件日志源属性自定义值默认情况下,ASP.NET在事件日志中记录所有系统未捕获的异常。我知道应该有一个日志记录工具,但这总比没有好,它可以作为一个临时解决方案。我希望能够有效地过滤日志中的事件。我知道以编程方式记录时,您可以通过以下方式为事件日志中的源列设置自定义值:EventLogeventLog=newEventLog("Application");eventLog.Source="我的自定义名称";eventLog.WriteEntry("一些错误描述...",EventLogEntryType.Error);但是,ASP.NET将此值设置为“ASP.NET”,后跟其版本。我简单地检查了web.config的文档,但没有发现明显的地方可以更改它。我想知道是否可以更改。最好的办法是按预期使用源属性,但在安装程序中使用安装程序类在安装时(在管理员下)设置注册表,例如:使用系统;使用系统集合;使用System.Collections.Generic;使用System.ComponentModel;使用System.Configuration.Install;使用系统诊断;namespaceInstallerClasses{[runInstaller(true)]publicpartialclassEventLog:Installer{privateEventLogInstallereventLogInstaller;///publicEventLog(){InitializeComponent();//创建EventLogInstaller的实例。eventLogInstaller=newEventLogInstaller();//设置事件日志的来源名称。eventLogInstaller.Source="我的来源";//设置源以将条目写入事件日志。eventLogInstaller.Log="应用程序";//将myEventLogInstaller添加到Installers集合。安装程序。添加(eventLogInstaller);}}}并确保它在安装程序中作为自定义操作运行。似乎使用source属性不是一个好主意。最初,我认为这是一个自由格式的文本。但我发现它必须通过RegisterEventSource(...)Win32API函数注册,这似乎只有在应用程序以管理员权限运行时才有效。.NET会默默地为您创建一个新源,但如果您不是管理员,则会抛出异常。总的来说,在ASP.NET中使用临时源名称可能需要一些预注册,这会在部署中引入另一个步骤。你可能想在global.asax中处理未捕获的异常,然后通过编程方式记录Exception,如下:对大家有用,需要多了解C#学习教程,希望大家多多关注——voidApplication_Error(objectsender,EventArgse){异常ex=Server.GetLastError().GetBaseException();//此处记录代码}本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
