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

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top