您的${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 *,所以不是这样。 –
问题何时发生?调试时,发布时还是两者兼而有之? –
调试。我还没有接近发布代码! :-) –