2010-09-04 1 views
0

При работе над приложением vb.net, в котором исключения были обработаны плохо. Это была большая боль. Таким образом, появилась идея: если можно генерировать библиотеку или службу или какой-то exe, который будет регистрировать всю ошибку приложения без написания одной строки кода/минимального кода в каком-либо глобальном месте в хост-приложении. Я знаю, это звучит немного сумасшедшим, но Windows Event Logger делает то же самое. Поэтому я подумал об этом. Позвольте мне уточнить. Скажем, у меня есть приложение abc.exe, при этом ни одна попытка не поймает. Я сталкиваюсь с большим количеством ошибок при использовании этого приложения. Теперь вместо того, чтобы копать голову в источник приложения, я хочу закодировать другое приложение, которое будет запускать и регистрировать все необработанные исключения этого приложения, включая управляемые и ком-то оба.Приложение Global Error Logger

Так гуру просят помочь мне. Я знаю, что ApplicationDomain полезна. Я наткнулся на имя парня Рика или что-то похожее на блог MSDN, но я больше не хватался. Поэтому будет полезен какой-то простой источник или часть кода. Пожалуйста, добавьте образец кода с вашими ответами.

Было бы очень полезно.

РЕЗЮМЕ

Я хочу приложение, которое будет вводить себя в любое приложение, где сборка Инжектор находится. То есть, если у меня есть приложение D: \ xyz \ myapp \ abc.exe, если, скажем, у меня было приложение exe, тогда, если поместить его в папку myapp, то после выполнения abc.exe будет запущено универсальное приложение для регистрации ошибок и вводить себя в текущий домен приложения. Также скажите мне, будет ли это сделано многопоточным, если я создам его как услугу.

+0

Это называется «отладчик». –

+0

Не забудьте отметить свой любимый ответ. – Steven

ответ

1

Эта страница MSDN Практическое руководство: Log Exceptions in Visual Basic точно описывает, что вам нужно. В резюме, он описывает:

  • Как использовать Visual Basic My.Application.Log для регистрации исключений с использованием встроенных в трассировщик .NET.
  • Как зарегистрировать событие приложения форм UnhandledException в приложениях VB.
  • Как зарегистрировать Visual Basic's FileLogTraceListener для входа в файл «[Пользователь] \ Application Data \ [CompanyName] \ [ProductName] \ [ProductVersion] [ApplicationName] .log».

Вот пример конфигурации файла приложения, которое регистрирует VB FileLogTraceListener:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.diagnostics> 
     <sources> 
      <source name="DefaultSource" switchName="DefaultSwitch"> 
       <listeners> 
        <add name="FileLog"/> 
       </listeners> 
      </source> 
     </sources> 
     <switches> 
      <add name="DefaultSwitch" value="Information" /> 
     </switches> 
     <sharedListeners> 
      <add name="FileLog" 
       type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" 
       initializeData="FileLogWriter" /> 
     </sharedListeners> 
    </system.diagnostics> 
</configuration> 
2

Если я правильно понял, у вас есть источник приложения с плохой обработкой ошибок, и вы сможете изменить его и перекомпилировать.

Если это так, вы можете посмотреть на событие AppDomain.UnhandledException. Цитата из MSDN: Это событие предоставляет уведомление о неперехваченных исключениях. Он позволяет приложению регистрировать информацию об исключении, прежде чем системный обработчик по умолчанию сообщает об исключении пользователю и завершает работу приложения.

Если вы перейдете к ссылке, у вас есть образец для кода, который вам нужно добавить, и это всего лишь несколько строк кода, которые можно переместить в один файл в вашем приложении, поэтому его нужно будет легко добавить.

 Смежные вопросы

  • Нет связанных вопросов^_^