私は、既存のワークフローベースのソリューションにロギング機能を追加する作業があります。階層化されたアーキテクチャ:BusinessLayer-> AgentLayer-> StoreLayerがあります。ビジネスレイヤーには、1つまたは複数のエージェントアクティビティからなるxamlアクティビティがあります。エージェントアクティビティは、1つ以上のストアアクティビティから構成されます。エージェントアクティビティとストアアクティビティはCodeActivityから継承されます。ワークフローの基礎活動を記録する方法
活動は、私の仕事は、各アクティビティの実行をログに記録することです
WorkflowInvoker.Invoke(activity);
によって実行されています。ログ出力。例:
BusinessActivity1 has been started at 11:00 8.2.2012
AgentActivity1 has been started at 11:01 8.2.2012
StoreActivity1 has been started at 11:02 8.2.2012
StoreActivity1 has been ended at 11:03 8.2.2012
AgentActivity1 has been ended at 11:04 8.2.2012
BusinessActivity1 has been ended at 11:05 8.2.2012
私の質問は、このようなログを記録するベストプラクティスです。 LogMessageを各アクティビティに書きたいとは思わない。私は統一されたソリューションを好む。どんな巧妙な解決策も存在しますか?
おかげ
ちょっとしたアイデア:ワークフロー内の他のすべてのアクティビティをラップするカスタムアクティビティを作成することができます。このカスタムアクティビティは、その中のアクティビティが実行されるたびにログアクションを実行できます。以前にそのスキーマが動作していた(私はコードが残っていません)、システムでワークフローサービスの実行を追跡できました。 –