我的代码库中有很多地方我希望在出现问题时得到通知——我想这很常见。看看下面的代码,我怎样才能重构这个方法来抽象出电子邮件/日志记录的细节?目前,这分散在大约 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.
}
}
问题:如何提高在我的应用程序中记录错误和发送通知的可维护性?