我需要根据我在Visual Studio中使用的配置更改应用程序名称.例如,如果我在调试配置中,我希望应用程序名称在Elmah_Error表的Application字段中显示为'App_Debug'.有人对这个有经验么?或者还有另一种方法吗?
现在可以纯粹在标记中完成.只需在web.config文件的部分中为元素添加一个applicationName
属性即可.例:errorLog
我已经测试了这个,它在记录异常和查看日志时都有效Elmah.axd
.
在OP的情况下,可以想象它也可以以编程方式设置,但我没有测试.对于我和我来说,对于大多数情况来说,标记方法就足够了.
默认情况下,Elmah使用AppPool的应用程序GUID作为默认应用程序名称.当您查看通过其HTTP模块创建的Web界面时,它将此作为识别Elmah_Error表中的错误的关键.
我的任务是在今年早些时候为我的公司探索这个选项.由于Elmah从HttpRuntime.AppDomainAppId
ErrorLog.cs文件中提取应用程序名称,因此我无法找到默认操作方法.你可以用你想要的任何键来操纵它; 但是,那就是AppPool的GUID.
话虽如此,我能够操作ErrorLog.cs文件将Elmah转换为可调用框架而不是基于处理程序的框架,并允许我设置ApplicationName.我最终做的是修改ErrorLog.cs以包含一个属性,允许我设置如下名称:
public virtual string ApplicationName { get { if (_applicationName == null) { _applicationName = HttpRuntime.AppDomainAppId; } return _applicationName; } set { _applicationName = value; } }
你可能需要做的是以不同的方式调整它,并将ApplicationName设置为不是HttpRuntime.AppDomainAppId
,而是从web.config中提取一个值.总而言之,这是可能的.我这样做的方式增强了ErrorLog.Log(ex)
方法,所以我可以使用Elmah在Web应用程序之外有一个可调用的框架.回顾我希望我做了app/web.config方法.
在Elmah中更改应用程序名称时要记住一件事.生成/elmah/default.aspx接口的http处理程序将不再起作用.我还在努力抽出时间绕回去; 但是,您可能需要在实现时考虑创建自定义界面.