通过 NLog 发送 ELMAH 输出

6

我目前正在使用NLog来记录我的ASP.NET MVC3应用程序的安全事件。

现在我们有另一个要求,将应用程序错误添加到单独的日志中。

由于我们已经在使用NLog(并喜欢Targets的灵活性),我想配置Elmah将错误传递给NLog进行记录。

是否有人做过这个并且愿意分享?


2
请参考类似问题的此回答 - Marnix van Valen
1
@MarnixvanValen 那个答案解释了如何将 NLog 的错误传递给 Elmah。问题是关于将 Elmah 异常传递给 NLog。 - Alexander Puchkov
1个回答

0

对于Log4Net,相同的请求在博客中编写。

我已将其翻译为NLog并更新为NLog的建议:

public class NLogErrorLog : XmlFileErrorLog
{
    private static Logger logger = LogManager.GetLogger("elmah");

    public NLogErrorLog(IDictionary config) : base(config)
    {
    }


    public NLogErrorLog(string logPath) : base(logPath)
    {
    }

    public override string Log(Error error)
    {
        //Write whatever you want to NLog
        logger.Error(error.Exception, "Exception logged through ELMAH: " + error.Message);
        return base.Log(error);
    }
}

在 web.config 中进行注册

<elmah>  
    <errorLog type="MyAssembly.NLogErrorLog, MyAssembly" logPath="~/App_Data" />  
</elmah>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接