Напишите исключения для текстового файла журнала, который совместим с консолью и веб-приложением - PullRequest
0 голосов
/ 07 марта 2019

У меня есть веб-приложение и отдельное консольное приложение в одном решении.Консольный проект заключается в отправке напоминаний по электронной почте клиентам.Приложение напоминания также использует метод отправки электронной почты через веб-приложение.Поскольку некоторые электронные письма не доставляются клиентам, я попытался добавить файл журнала для исключений.Чтобы указать путь к текстовому файлу, я использовал путь к карте сервера, как показано ниже.

string filePath = System.Web.HttpContext.Current.Server.MapPath(@"~/EmailError.txt");

, что дает исключение для консольного приложения при его запуске.Я сделал ошибку, используя путь к карте сервера, который не может использоваться для консольного приложения (так как не имеет HttpContext).

Но мне нужно записать эти исключения в две отдельные папки: один идентификатор для веб-приложения и другой для консольного приложения.Так как я использую общий метод для отправки обоих типов писем.Я только что добавил лог в блок catch.

Было бы здорово, если бы я мог написать этот файл в соответствующих размещенных областях, как один в папке веб-приложения, а другой - в папке консольного приложения.Какой лучший подход я могу использовать для этого.

текущий код журнала ниже

        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);
            }
        }

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...