将异常写入与控制台和Web应用程序兼容的日志文本文件

时间:2019-03-07 08:53:52

标签: c# asp.net exception

在同一解决方案中,我有一个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);
            }
        }

感谢前进。

0 个答案:

没有答案