2017-06-17 1 views
0

Ich suche nach einer Möglichkeit, verschiedene Protokollpfade für verschiedene Fehlertypen in meinem Web-API-Projekt zu haben. Was ich will ist, System.Web.HttpException Fehler in anderen Ordner und meine anderen Fehler in einem anderen Ordner zu setzen. Der Grund dafür ist, dass ich so viele System.Web.HttpException-Fehler erhalte, von denen die meisten irrelevant sind, aber ich muss sie trotzdem in einem anderen Ordner protokollieren. Mein Elmah-Setup ist ein Standard.Ein Weg, verschiedene LogPaths für Elmah zu haben, basierend auf Fehlertypen

das ist mein Web-Config-Tag:

<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data/ErrorLog" /> 
<security allowRemoteAccess="false" /> 
</elmah> 

jede Hilfe ist sehr geschätzt.

Antwort

1

Die kurze Antwort: Sie können nicht. XmlFileErrorLog unterstützt nur ein einzelnes Verzeichnis als logPath.

Wenn Sie dies implementieren möchten, müssen Sie den ELMAH-Quellcode forkieren und die Log-Methode von XmlFileErrorLog überschreiben.

Ein anderer Ansatz könnte darin bestehen, ELMAH error filtering zu verwenden, um alle System.Web.HttpException Fehler zu ignorieren und dann ein anderes Protokollierungsframework zu verwenden, um diese Fehler zu protokollieren. Wenn Sie log4net, NLog, Serilog oder Ähnliches einrichten, können Sie diese Integration alle Fehler protokollieren (einschließlich der HTTP-Ausnahmen).

Verwandte Themen