通过NLog发送ELMAH输出

dbr*_*ing 5 elmah nlog

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

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

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

有没有人这样做并关心分享?

Jul*_*ian 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

在 web.config 中注册

<elmah>  
    <errorLog type="MyAssembly.NLogErrorLog, MyAssembly" logPath="~/App_Data" />  
</elmah>
Run Code Online (Sandbox Code Playgroud)