2017-08-21 121 views
0

在下面的代碼中,args.Exception.ToString()(或args.Exception.StackTrace)僅返回引發異常的方法名稱和行,但不返回完整的調用堆棧。PostSharp異常堆棧跟蹤未完成

public override void OnException(MethodExecutionArgs args) 
    { 
     Logger.GetLogger().Write(LogLevel.Error, args.Exception.ToString());    
    } 

但下面的代碼給出了完整的調用堆棧

catch (Exception ex) 
{ 
    Console.WriteLine(ex); 
} 

我怎樣才能得到充分調用堆棧中PostSharp與MethodExecutionArgs?

+0

你使用什麼版本的PostSharp?它在5.0.32中運行良好。你有沒有嘗試'Console.WriteLine(args.Exception.ToString());'在'OnException'中?也許問題是記錄器相關的(堆棧跟蹤是多行)。 –

回答

0

問題不在於PostSharp,而在於我的代碼。我在整個程序集而不是調用者處應用了[SwallowException]。 另外,Logger.GetLogger()。Write()支持多行。 謝謝Jakub。