на запрос ASP.NET?

Я использовал log4net для регистрации сообщений журнала нашего веб-сайта ASP.NET, и недавно я хотел добавить информацию о странице/обработчике, где произошла ошибка. Поэтому я решил добавить следующую строку в Global.asax:

void Application_BeginRequest(object sender, EventArgs e)
{
    log4net.ThreadContext.Properties["page"] = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath;
}

и, подобно мудрому, добавил %property{page}к своему шаблону преобразования:

<conversionPattern value="%newline%date %-5level %property{page} - %message%newline%newline%newline" />

Это отлично работало для одиночных запросов. Но потом я заметил в своих журналах, что свойство страницы может измениться во время запроса ASP.NET. У меня есть вход в один обработчик ASHX, и в процессе его обработки свойство страницы изменится на другое значение, указывающее на страницу ASPX. Я пришел к выводу, что к ASP поступает еще один запрос.NET и его BeginRequest, а свойство статической страницы в log4net.ThreadContextизменяется на другое значение.

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

10
задан Brian Tompsett - 汤莱恩 7 June 2015 в 13:14
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: