我目前正在使用NLog来记录我的ASP.NET MVC3应用程序的安全事件。
现在我们有另一个要求,将应用程序错误添加到单独的日志中。
由于我们已经在使用NLog(并喜欢Targets的灵活性),我想配置Elmah将错误传递给NLog进行记录。
是否有人做过这个并且愿意分享?
我目前正在使用NLog来记录我的ASP.NET MVC3应用程序的安全事件。
现在我们有另一个要求,将应用程序错误添加到单独的日志中。
由于我们已经在使用NLog(并喜欢Targets的灵活性),我想配置Elmah将错误传递给NLog进行记录。
是否有人做过这个并且愿意分享?
对于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>