2011-07-15 18 views
5

Aktualnie używam NLog do rejestrowania zdarzeń bezpieczeństwa z mojej aplikacji ASP.NET MVC3.Wysyłanie wyników ELMAH przez NLog

Teraz mamy kolejny obowiązek dodawania błędów aplikacji do oddzielnego dziennika.

Ponieważ już używamy NLog (i uwielbiamy elastyczność Celów), chciałbym skonfigurować Elmah, aby przekazywać błędy na NLog do logowania.

Czy ktoś to zrobił &, który chcesz udostępnić?

+2

See [odpowiedź] (http://stackoverflow.com/questions/6610735/nlog-elmah-shared-library/6931091#6931091) na podobne pytanie: –

+1

@MarnixvanValen, która odpowiada wyjaśnia, jak przekazywać błędy z NLog do Elmah. Pytanie dotyczy przekazywania wyjątków Elmah do NLog. –

Odpowiedz

0

Ten sam wniosek został napisany dla log4net w blog

przetłumaczyłem go nlog i uaktualnionej jej zalecenia nlog za:

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); 
    } 
} 

zarejestrować się w web.config

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