gpt4 book ai didi

c# - 如何记录数据库中的所有错误但仅在有条件的基础上发送电子邮件错误?

转载 作者:太空狗 更新时间:2023-10-29 17:57:31 25 4
gpt4 key购买 nike

我希望仅在特定情况下发送电子邮件,并在所有情况下都在数据库中记录错误。但据我了解,过滤不适用于两者之一。是对的吗?如果是这样,我该如何实现?

还要注意的是,现在I'm saving additional info to database关于 global.asax 中的 ErrorMail_Mailing,由 Atif Aziz 回复.因为电子邮件将仅在有条件的基础上发送,并且 ErrorMail_Mailing 仅在发送电子邮件时触发,我想知道如何将所有错误的附加信息保存到数据库中。

更新:
我对 Elmah 代码做了一些修改以满足我的需要。

最佳答案

第一步是配置模块。确保在 ELMAH 的任何日志记录模块之后添加 Elmah.ErrorFilterModule,如此处所示的 ErrorLogModule:

<httpModules>
...
//email
<add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah"/>
//sql
<add name="ErrorSql" type="Elmah.SqlErrorLog, Elmah"/>
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>

...
</httpModules>

然后在您的配置部分注册 Elmah.ErrorFilterSectionHandler,如下所示:

<configSections>
<configSections>
<sectionGroup name="elmah">
<section name="errorFilter" type="Elmah.ErrorFilterSectionHandler, Elmah"/>
</sectionGroup>
</configSections>

现在您可以添加过滤器来决定要忽略哪些来源的哪些错误。以下示例显示如何防止邮寄 404 HTTP 错误。

<elmah>
<errorMail from="xx@xx.com" fromName="xx" to="xx@xx.com" subject="An unhandled exception occured xxx" priority="Normal" async="false" smtpServer="xx.xx.xx.com"/>
//sql
<errorLog name="ErrorSql" type="Elmah.SqlErrorLog, Elmah" connectionStringName="MyConnectionString" />
<add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah"/>
<errorFilter>
<test>
<and>
<equal binding="HttpStatusCode" value="404" type="Int32" />
<regex binding="FilterSourceType.Name" pattern="mail" />
</and>
</test>
</errorFilter>
</elmah>

您可以在以下链接中找到更多详细信息。

http://code.google.com/p/elmah/wiki/ErrorFiltering

关于c# - 如何记录数据库中的所有错误但仅在有条件的基础上发送电子邮件错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com