2009-03-20 7 views
0

Я хотел бы получить информацию о трассировке стека (имя файла и номер строки) для регистрации исключений и т. Д. В производственной среде. DLL установлены в GAC. Есть какой-либо способ сделать это?Как получить информацию о трассировке стека для регистрации в процессе производства при использовании GAC

This article говорит о вводе PDB файлы в GAC:

Вы можете определить это легко, потому что они говорят, что нужно, чтобы скопировать символы отладки (.pdb файлов) в GAC. Само по себе это не сработает.

Я знаю, что эта статья относится к отладке с помощью VS, но я подумал, что это может быть применимо и для регистрации stacktrace.

Я выполнил инструкцию для ответа this question, за исключением снятия флажка. Оптимизируйте код, который, по их словам, является необязательным.

Я скопировал dlls и pdbs в GAC, но я до сих пор не получаю информацию о трассировке стека. Вот что я получаю в файле журнала для отслеживания стека:

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 

Я использую NLog.

Моих NLog раскладка:

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

$ {StackTrace: Формат = Raw} является соответствующей частью.

ответ

1

Попробуйте сырец в нижнем регистре:

${stacktrace:format=raw} 

Если это не работает, попробуйте:

${exception:format=stacktrace} 
+0

Ни w orked, хотя второй дал мне более красивое расположение имен методов: CalliHelper.EventArgFunctionCaller => MembershipLogin.Page_Load => MembershipLogin.Configure –

+0

Вы когда-нибудь узнавали, как получить номера строк? – Russell

+0

Возможно, вы должны задать согласованный вопрос? –

0

Попробуйте это:

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

Строка StackTrace будет иметь stackstrace из текущая резьба

+0

Спасибо, хотя я действительно не хочу менять источник NLog. –