私のコード ベースには、問題が発生したときに通知を受けたい場所がたくさんあります。かなり一般的だと思います。次のコードを見て、このメソッドをリファクタリングして、電子メール/ログの詳細を抽象化するにはどうすればよいでしょうか? 現在、約100箇所に散らばっており、何とかしたいです!
public bool MethodOne() {
string message;
bool success = new Task().Execute();
message = string.Format( "MethodOne was {0} successful.",
success ? "" : "not");
if( !success )
SMTP.send( to, from, message );
System.Diagnostic.EventLog.WriteEntry( executingAssembly, message);
return success;
};
私の現在の考えは、次のようなことをすることです:
public class Log
{
string to = "me@me.com",
from = "system@me.com",
subject = "Error occured";
public void Write( string executingAssembly, string message, bool sendEmail )
{
System.Diagnostic.EventLog.WriteEntry( executingAssembly, message);
if( sendEmail )
SendEmail( to, from, subject, message );
}
private void SendEmail( to, from, subject, message )
{
// Details to send email.
}
}
質問: アプリケーション内でエラーのログ記録と通知の送信の保守性を向上させるにはどうすればよいですか?