2009-03-20 13 views
0

生産環境でログ例外などのスタックトレース(ファイル名と行番号)情報を取得したいと考えています。 DLLはGACにインストールされます。これを行う方法はありますか?GACを使用している場合、生産にログインするためのスタックトレース情報を取得する方法

This articleはGACにPDBファイルを置くことについて述べている:彼らはあなたがGACにデバッグシンボル(.pdbファイル)をコピーする必要があると言うだろうので

あなたは簡単にこれらを見つけることができます。それ自体では、うまくいかないでしょう。

私はこの記事がVSでのデバッグについて言及していることを知っていますが、スタックトレースのロギングにも適用できると思います。

私はthis questionへの答えの指示に従っていますが、オプションであると言われる最適化コードのチェックを外しています。

私はGACにdllとpdbsをコピーしましたが、私はまだスタックトレース情報を取得していません。スタックトレースのログファイルは次のとおりです。

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}" 

$ {スタックトレース:フォーマット=生}要部です。

答えて

1

は小文字で生お試しください:

${stacktrace:format=raw} 

それは試して動作しない場合:文字列スタックトレースはのstackstraceを持つことになります

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

${exception:format=stacktrace} 
+0

どちらでもない2番目のメソッドはメソッド名のレイアウトをより良くしてくれました:CalliHelper.EventArgFunctionCaller => MembershipLogin.Page_Load => MembershipLogin.Configure –

+0

行番号を取得する方法を知りましたか? – Russell

+0

おそらくあなたは一貫した質問をする必要がありますか? –

0

はこれを試してみてください現在のスレッド

+0

ありがとう、私は本当にNLogのソースを変更したくありません。 –

関連する問題