当前位置:  开发笔记 > 编程语言 > 正文

有没有办法以编程方式在Elmah中设置应用程序名称?

如何解决《有没有办法以编程方式在Elmah中设置应用程序名称?》经验,为你挑选了2个好方法。

我需要根据我在Visual Studio中使用的配置更改应用程序名称.例如,如果我在调试配置中,我希望应用程序名称在Elmah_Error表的Application字段中显示为'App_Debug'.有人对这个有经验么?或者还有另一种方法吗?



1> Stephen Kenn..:

现在可以纯粹在标记中完成.只需在web.config文件的部分中为元素添加一个applicationName属性即可.例:errorLog


我已经测试了这个,它在记录异常和查看日志时都有效Elmah.axd.

在OP的情况下,可以想象它也可以以编程方式设置,但我没有测试.对于我和我来说,对于大多数情况来说,标记方法就足够了.



2> JamesEggers..:

默认情况下,Elmah使用AppPool的应用程序GUID作为默认应用程序名称.当您查看通过其HTTP模块创建的Web界面时,它将此作为识别Elmah_Error表中的错误的关键.

我的任务是在今年早些时候为我的公司探索这个选项.由于Elmah从HttpRuntime.AppDomainAppIdErrorLog.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处理程序将不再起作用.我还在努力抽出时间绕回去; 但是,您可能需要在实现时考虑创建自定义界面.


相当小的狡辩,但我更喜欢这种模式:return _applicationName ?? (_applicationName = HttpRuntime.AppDomainAppId);
推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有