[英]Incomplete Stack Trace in NLog
我正在一個應用程序中實現NLog。 日志執行的數據庫插入的配置包括此...
<parameter layout="${stacktrace:format=Raw}" name="@Stacktrace"/>
但是當寫入日志項時,輸出總是看起來像這樣......
文件中偏移量為85的MethodName1:行:列:0:0
文件中偏移量為93的MethodName2:行:列:0:0
文件中偏移量為160的MethodName3:行:列:0:0
任何人都可以建議為什么缺少文件名和位置詳細信息?
你的${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()
,以查看與您所看到的值相比的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.