2017-08-21 1 views
0

Dans le code ci-dessous, args.Exception.ToString() (ou args.Exception.StackTrace) renvoie uniquement le nom et la ligne de la méthode où l'exception est levée, mais pas la pile d'appels complète.La trace de pile d'exception PostSharp n'est pas complète

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

Mais le code ci-dessous donne la callstack complète

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

Comment puis-je obtenir la pile d'appel complet en PostSharp avec MethodExecutionArgs?

+0

Quelle version de PostSharp utilisez-vous? Cela fonctionne bien dans 5.0.32. Avez-vous essayé 'Console.WriteLine (args.Exception.ToString());' dans 'OnException'? Peut-être que le problème est lié au journal (la trace de la pile est multiligne). –

Répondre

0

Le problème n'est pas avec PostSharp mais avec mon code. J'avais appliqué [SwallowException] sur tout l'assemblage au lieu de l'appelant. En outre, Logger.GetLogger(). Write() prend en charge la multiligne. Merci Jakub.