Comment obtenir des informations de trace de la pile pour la connexion de la production lors de l'utilisation du GAC

StackOverflow https://stackoverflow.com/questions/665225

Question

Je voudrais obtenir des informations trace de la pile (nom du fichier et le numéro de ligne) pour les exceptions d'exploitation forestière, etc. dans un environnement de production. Les DLL sont installés dans le GAC. Est-il possible de le faire?

Cet article dit de mettre PDB dans le GAC:

  

Vous pouvez repérer ces facilement, car ils vous diront que vous devez copier les symboles de débogage (fichier pdb) au GAC. En soi, cela ne fonctionnera pas.

Je sais que cet article fait référence au débogage avec VS mais je pense qu'il pourrait appliquer à l'enregistrement de l'stacktrace aussi.

J'ai suivi les instructions de la réponse à href="https://stackoverflow.com/questions/628565/"> question sauf pour décochant optimiser le code qu'ils ont dit était facultative.

Je copiais les dll et PDB dans le GAC, mais je ne suis toujours pas obtenir les informations de trace de la pile. Voici ce que je reçois dans le fichier journal de la trace de la pile:

OnAuthenticate at offset 161 in file:line:column <filename unknown>:0:0
ValidateUser at offset 427 in file:line:column <filename unknown>:0:0
LogException at offset 218 in file:line:column <filename unknown>:0:0

J'utilise NLog.

Ma mise en page NLog est:

layout="${date:format=s}|${level}|${callsite}|${identity}|${message}|${stacktrace:format=Raw}"

{$ stacktrace: format = Raw}. Étant la partie pertinente

Était-ce utile?

La solution

Essayez cru en minuscules:

   ${stacktrace:format=raw}

Si cela ne fonctionne pas essayer:

   ${exception:format=stacktrace}

Autres conseils

Essayez ceci:

StringWriter sw = new StringWriter();
new Throwable().printStackTrace(new PrintWriter(sw));
String stackTrace = sw.toString();

La stackTrace chaîne aura le stackstrace du thread courant

scroll top