2012-04-11 14 views
1

WCFアプリケーションに新しいプロファイリング機能を追加する必要があります。これは、アプリケーションで時間が費やされている場所を記録するためです。私はポストシャープで、ロギングを適用するコンベンションドリブンのアプローチを見ています。実際にロギングする方法についていくつかの入力が必要です。 StopWatchを使用してログを作成するためのカスタムクラスを既に作成してあり、WCFアプリケーションのレイヤーにログを記録できます。しかし、私はこの目的のためにPostSharpと一緒に使うことができるスレッドセーフ代替ライブラリがあるのだろうかと思っています。私はMiniProfilerに出くわしましたが、主にASP.NET MVCアプリケーション向けです。他のどのフレームワークも考慮する必要がありますか、私はカスタムクラスを使うべきですか? ありがとうwcf + postsharpのProfilerライブラリ

+0

ミニプロファイラはWCFを完全にサポートしています。デモプロジェクトもあります –

答えて

0

私はこれまで、カスタムIEndpointBehaviorに実装されたIClientMessageInspectorを使用していました。 どのような種類のログを必要としているかによって、これはちょっとしたことです。例は次のリンク

IClientMessageInspector Interface

+0

私が探しているものではありません。例えば。今私は特定のアセンブリのすべてのパブリックメソッドをプロファイリングするためにpost sharpを設定しました。私は、データベースを呼び出すまで、各メソッド呼び出しがレイヤーをどれくらいの間、どのくらいの時間をかけているかを知りたい。これで、xmlの結果をlog4netデータベースに出力できるカスタムクラスでこれを行うことができました。この目的のために、このdiyのアプローチの代わりにいくつかの種類のフレームワークを使用することを検討すべきかどうかは不思議です。 – jaspernygaard

0

にPostSharp自体はスレッドセーフであります。あなたが書いた側面は、書かれていないとスレッドセーフではないかもしれませんが、スレッドセーフにする方法は常にあります。

OnMethodBoundaryAspectを使用していて、OnEntryからOnSuccessに何かを渡す必要がある場合は、初期ストップウォッチ値をOnMethodExecutionArgs.MethodExecutionTagに格納します。