在同一解决方案中,我有一个Web应用程序和一个单独的控制台应用程序。控制台项目是向客户发送提醒电子邮件。提醒应用程序还使用Web应用程序的电子邮件发送方法。由于某些电子邮件未传递给客户,因此我尝试添加例外日志文件。为了提供文本文件路径,我使用了如下的服务器映射路径。
string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~/EmailError.txt");
会在控制台应用程序运行时为其提供例外。我使用不能用于控制台应用程序的服务器映射路径犯了一个错误(因为没有HttpContext)。
但是我需要将这些异常记录到两个单独的文件夹中,一个ID用于Web应用程序,另一个ID用于控制台应用程序。由于我使用一种通用方法来发送两种类型的电子邮件。我只是将日志添加到catch块中。
如果我可以在相应的托管区域中将此文件写为web应用程序文件夹中的一个,而另一个位于控制台应用程序文件夹中,则为好。我可以为此使用的最佳方法是什么?
当前日志代码低于
catch (Exception ex)
{
email.IsSent = 0;
string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~/EmailError.txt");
using (StreamWriter writer = new StreamWriter(filePath, true))
{
writer.WriteLine("Message :" + ex.Message + "<br/>" +
Environment.NewLine + "StackTrace :" + ex.StackTrace + "" +
Environment.NewLine + "Date :" + DateTime.Now.ToString()
);
writer.WriteLine(Environment.NewLine + "-----------------------------------------------------------------------------" + Environment.NewLine);
}
}
感谢前进。