我有很多地方在我的代码库中,我希望在事情出错时得到通知 - 我想象的很常见。看下面的代码,我怎么能重新分析这个方法来抽象出电子邮件/日志记录的细节?目前,这分散在大约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 = "[email protected]",
from = "[email protected]",
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.
}
}
问: 我怎么能提高记录的错误我的应用程序内的可维护性和发送通知?
NLog支持许多日志记录目标,包括文件和电子邮件。它处理日志文件旋转之类的事情,并允许在需要时进行大量的自定义。 – 2012-07-14 16:39:12