您的${stacktrace}
是否包含任何有用的信息?例如,假設一個非常簡單的程序,在StackTraceLayoutRenderer
這樣做之前,堆棧跟蹤看起來就像這樣。
logEvent.StackTrace.GetFrames()
{System.Diagnostics.StackFrame[14]}
[0]: {Write at offset 263 in file:line:column c:\Dev\NLogSrc\src\NLog\LoggerImpl.cs:76:17 }
[1]: {WriteToTargets at offset 161 in file:line:column c:\Dev\NLogSrc\src\NLog\Logger.cs:542:13 }
[2]: {Debug at offset 103 in file:line:column c:\Dev\NLogSrc\src\NLog\Logger1.cs:454:17 }
[3]: {Build at offset 232 in file:line:column c:\Dev\NLogSrc\src\ConsoleApplication1\Program.cs:43:17 }
[4]: {GetAnother at offset 77 in file:line:column c:\Dev\NLogSrc\src\ConsoleApplication1\Program.cs:25:17 }
[5]: {Main at offset 85 in file:line:column c:\Dev\NLogSrc\src\ConsoleApplication1\Program.cs:16:13 }
[6]: {_nExecuteAssembly at offset 0 in file:line:column <filename unknown>:0:0 }
[7]: {ExecuteAssembly at offset 107 in file:line:column <filename unknown>:0:0 }
[8]: {RunUsersAssembly at offset 40 in file:line:column <filename unknown>:0:0 }
[9]: {ThreadStart_Context at offset 112 in file:line:column <filename unknown>:0:0 }
[10]: {RunInternal at offset 180 in file:line:column <filename unknown>:0:0 }
[11]: {Run at offset 22 in file:line:column <filename unknown>:0:0 }
[12]: {Run at offset 65 in file:line:column <filename unknown>:0:0 }
[13]: {ThreadStart at offset 68 in file:line:column <filename unknown>:0:0 }
如果您看了項目5(我的代碼)和6(運行時(?)),有相當多的差異
此渲染默認爲第一個項目堆棧不是源於NLog(#3),並且TopFrames
配置項默認爲3,所以我希望你的第一行有一些有價值的信息,而其他的可能或不可以。
在您的日誌記錄調用之前設置一個斷點,並在您的直接窗口中嘗試new System.Diagnostics.StackTrace(true).GetFrames()
以查看您所看到的值和您看到的值。
來源
2015-10-22 00:03:37
Joe
我已經檢查並將解決方案中的項目設置爲* Full *,所以不是這樣。 –
問題何時發生?調試時,發佈時還是兩者兼而有之? –
調試。我還沒有接近發佈代碼! :-) –