2016-08-16 2 views
2

Ich verwende LogEventInfo, um beide in einer Protokolldatei und einem Datenbankeintrag zu protokollieren. Ich möchte auch den Stacktrace protokollieren, wenn eine Ausnahme in der Protokolldatei ausgelöst wird. Ich dachte, ich muss nur die Exception-Eigenschaft in der LogEventInfo auf die Ausnahme festlegen, die ich protokollieren möchte, aber es hat nicht funktioniert, Die Protokolldatei enthält nur "Fehler meine Nachricht". Wo habe ich falsch gemacht? Vielen Dank.NLog LogEventInfo zum Protokollieren der Ausnahme

Die NLog.config ist wie

<target xsi:type="File" name="localLogFile" fileName="${basedir}/logs/${shortdate}.log" 
     layout="${longdate} ${uppercase:${level}} ${message}" /> 
<logger name="*" minlevel="Debug" writeTo="localLogFile" /> 

und die C# -Code

LogEventInfo logentity = new LogEventInfo(LogLevel.Error, "", "my message"); 
logentity.Properties["errormsg"] = msg; 

logentity.Exception = new Exception("Dummy"); 

logger.Error(logentity); 

Antwort

1

Sie müssen auch die Ausnahme im Layout drucken, ${exception} verwenden.

So ein gutes Layout wäre:

layout="${longdate} ${uppercase:${level}} ${message} ${exception}" /> 

Überprüfen Sie die docs for ${exception} für Optionen verschiedene machen.

Verwandte Themen