Мы настроили Elmah для 3 asp. net mvc веб-сайтов и 3 windows сервисов, все записи в одну и ту же таблицу ElamhLog в одной базе данных. Все они имеют свое собственное значение для «приложения».
Чтобы ПОКАЗАТЬ ведение журнала, мы хотим сделать это с одного из 3 веб-сайтов, и на этой странице показать ведение журнала всех 6 приложений.
Я использовал этот (http://beletsky.net/2011/08/latest-version-of-elmah-mvc-controller.html) код, чтобы настроить страницу для отображения журнала.
var currentApplication = (HttpApplication)context.HttpContext.GetService(typeof(HttpApplication));
if (currentApplication != null)
{
var currentContext = currentApplication.Context;
var httpHandler = factory.GetHandler(currentContext, null, null, null);
if (httpHandler is IHttpAsyncHandler asyncHttpHandler)
{
asyncHttpHandler.BeginProcessRequest(currentContext, r => { }, null);
}
else
{
httpHandler?.ProcessRequest(currentContext);
}
}
Это работает, но показывает только ошибки с этого 1 сайта, и не для других. Код, отвечающий за написание страницы ошибок, - Elmah.ErrorLogPage
, и у него есть свойство, называемое «application», которое действительно имеет только имя этого 1 сайта, и я предполагаю, что оно использует это свойство, чтобы показывать только ошибки этого одного приложения. Он также доступен только для чтения, поэтому я не могу установить для него другие значения.
Однако есть ли способ показать ошибки всех приложений с помощью этого одного обработчика?