0

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

この記事では、PDB ファイルを GAC に配置する方法について説明しています。

これらは、デバッグ シンボル (.pdb ファイル) を GAC にコピーする必要があると表示されるため、簡単に見つけることができます。それ自体では、それは機能しません。

この記事は VS を使用したデバッグに言及していることは知っていますが、スタックトレースのログ記録にも当てはまると思いました。

オプションであると言った最適化コードのチェックを外すことを除いて、この質問への回答の指示に従いました。

dll と pdb を 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

Nログを使用しています。

私のNLogレイアウトは次のとおりです。

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

${stacktrace:format=Raw} が関連部分です。

4

2 に答える 2

1

小文字で raw を試してください:

   ${stacktrace:format=raw}

それでもうまくいかない場合は、次を試してください。

   ${exception:format=stacktrace}
于 2009-03-20T07:30:15.620 に答える
0

これを試して:

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

文字列stackTraceには、現在のスレッドのスタックトレースが含まれます

于 2009-07-21T16:17:29.063 に答える