Como obter informações de rastreamento de pilha para o registo na produção ao usar o GAC
-
21-08-2019 - |
Pergunta
Gostaria de obter rastreamento de pilha (nome do arquivo e número de linha) informações para login exceções etc. num ambiente de produção. As DLLs são instalados no GAC. Existe alguma maneira de fazer isso?
Este artigo diz sobre a colocação de arquivos PDB na GAC:
Você pode detectar estes facilmente, porque eles vão dizer que você precisa copiar os símbolos de depuração (.pdb) para o GAC. Em si, isso não vai funcionar.
Eu sei que este artigo refere-se a depuração com VS mas eu pensei que poderia aplicar-se a registrar o stacktrace também.
Eu segui as instruções para a resposta a esta questão à excepção do código Optimize desmarcando que disseram que era opcional.
Copiei as DLLs e pdbs no GAC, mas eu ainda não estou recebendo as informações de rastreamento de pilha. Aqui está o que eu entrar no arquivo de log para o rastreamento de pilha:
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
Eu estou usando NLog.
Layout Meu NLog é:
layout="${date:format=s}|${level}|${callsite}|${identity}|${message}|${stacktrace:format=Raw}"
$. {Stacktrace: format = Raw} sendo a parte relevante
Solução
Tente cru em minúsculas:
${stacktrace:format=raw}
Se isso não tentativa trabalho:
${exception:format=stacktrace}
Outras dicas
Tente isto:
StringWriter sw = new StringWriter();
new Throwable().printStackTrace(new PrintWriter(sw));
String stackTrace = sw.toString();
O stackTrace corda terá a stackstrace do segmento atual