Включить имя приложения в журнал исключений

Я разрабатываю реализацию ELMAH в веб-приложении, которое записывает исключения в SQL Server. . Впрочем, это несущественно. Моя цель — включить имя приложения в журнал, чтобы я мог легко определить приложение-нарушитель с первого взгляда при проверке отчетов об ошибках. Я искал повсюду, часами пытаясь найти решение. Я включил Application Name=[myApp] в свою строку подключения к SQL Server, но это помогает мне идентифицировать приложение только во время трассировки SQL Server, а не в моей фактической регистрации ошибок.

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

введите здесь описание изображения

Я бы подумал, что это должно быть так же просто, как добавить значение к web.config или что-то в этом роде, но я не могу найти такого решения или любого другого. Я, вероятно, также должен отметить, что я использую IIS 7.5 и .NET 4.0 на случай, если это как-то связано. :)


person Chiramisu    schedule 31.03.2013    source источник


Ответы (2)


Возможно, ответы на это вопрос поможет...

PS. Не смотрите на принятый ответ, а на продолжение, где дан пример элемента <errorLog>...

person nkvu    schedule 31.03.2013
comment
Я не могу понять, куда идет этот тег. Пока еще не повезло. :( - person Chiramisu; 01.04.2013
comment
Это пример для Oracle, но принцип тот же (прокрутите комментарии чтобы увидеть пример) ... Кроме того, если вы опубликуете свой файл конфигурации (включая элементы ELMAH), возможно, кто-нибудь сможет его посмотреть? - person nkvu; 01.04.2013
comment
Кроме того, вот пример ELMAH web.config — пример в моем предыдущем комментарии ссылается на него, но я думаю, что он ссылается на неправильный (там нет всех деталей) - person nkvu; 01.04.2013
comment
Я попробовал ваши предложения и, похоже, столкнулся с проблемой .NET 4? Понижение целевой версии не является приемлемым решением, поэтому я не уверен, что еще можно попробовать на данном этапе. - person Chiramisu; 01.04.2013
comment
Можно ли (если вам это удобно) опубликовать весь ваш web.config? Мы использовали ELMAH в некоторых наших веб-приложениях .NET 4.0 и ранее не сталкивались с проблемами. - person nkvu; 01.04.2013

Поскольку я всегда заполняю информацию о сборке для всех своих приложений, я решил заполнить это поле из My.Application.Info.Title, к которому я только что понял, как получить доступ программно. Чтобы установить это поле в ELMAH, я установил значение ApplicationName моего объекта SqlErrorLog следующим образом:

Dim se As New Elmah.SqlErrorLog(ConnectionStrings("Elmah").ConnectionString)
se.ApplicationName = My.Application.Info.Title

Информацию о сборке можно установить, открыв свойства проекта -> вкладку «Приложение» -> нажмите «Информация о сборке...» -> установите значение «Название».

Теперь, когда вы вызываете функцию Log для этого объекта, она создает запись в базе данных, включая имя приложения.

person Chiramisu    schedule 01.04.2013