2011-07-15 57 views
5

我正在使用NLog從ASP.NET MVC3應用程序記錄安全事件。通過NLog發送ELMAH輸出

現在我們有另一個要求將應用程序錯誤添加到單獨的日誌中。

由於我們已經在使用NLog(並且非常喜歡目標的靈活性),我想配置Elmah將錯誤傳遞給NLog進行日誌記錄。

有沒有人做過&關心分享?

+2

見[這個答案](http://stackoverflow.com/questions/6610735/nlog-elmah-shared-library/6931091#6931091)到類似的問題 –

+1

@MarnixvanValen回答解釋如何將錯誤從NLog傳遞給Elmah。問題是關於將Elmah例外傳遞給NLog。 –

回答

0

同樣的請求在blog

我把它翻譯成NLOG和更新,它NLOG的建議對log4net的書面:

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>