Myślisz, że zarabiasz tyle, na ile zasługujesz? Zapraszamy do wzięcia udziału w anonimowej ankiecie.
1

1

Witam,

Poszukuję namiarów na komponenty/biblioteki raportowania błędów w aplikacjach .NET'owych (desktopowych).

W przypadku wystąpienia nieobsłużonego wyjątku, komponent powinien wyświetlić komunikat wraz z możliwością wysłania raportu (via email) zawierającego klasyczne informacje typu (stos wywołania, załadowane modułu), wiadomość od użytkownika, zrzut ekranu itp. Zarządzanie zgłoszeniami po stronie 'serwisu' nie jest konieczne.

Dotychczas jedynym sensownym znalezionym rozwiązaniem jest www.eurekalog.com - którą używałem w wersji Delphi.

Spotkał się ktoś z innymi rozwiązaniami?

flag

3 Answers

2

Eureka Log masz dostępną także pod .NET - EurekaLog.NET.

Nigdy nie używałem, ale wydaje mi się, że podobną funkcjonalnośc możesz uzyskać za pomocą Exception Handling Application Block z biblioteki Enterprise Library z Pattern & Practices.

link|flag
Wiem, ze ELog jest też pod .NET. Myślalem tylko, że tego typu (kompleksowych) projektów jest troszkę więcej – Tomasz B Feb 11 at 8:29
Z pytania to nie wynikało, dlatego też o niej napisałem. – Paweł Łukasik Feb 11 at 10:14
1

Ja od lat używam jednego: NLog.
Bardzo łatwy w obsłudze, szybki.

Na uwagę zasługuje fakt, że jest to polski projekt. :)

link|flag
1

Gorąco polecam Exception Handling Application Block z Enterprise Library. Za pomocą tej biblioteki można stworzyć politykę obsługi błędów w aplikacji (jak mają być obsługiwane wyjątki w zależności od typu i miejsca wystąpienia).

W Enterprise Library dostępny jest również Logging Application Block, za pomocą którego można dokonywać logowania błędów. Ja jestem zwolennikiem log4net zatem napisałem sobie sam handler logujący:

using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration;
using System.Collections.Specialized;

[ConfigurationElementType(typeof(CustomHandlerData))]
public class Log4NetLoggingHandler : IExceptionHandler
{

    private static log4net.ILog _oLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    public Log4NetLoggingHandler(NameValueCollection ignore)
    {

    }

    public System.Exception IExceptionHandler.HandleException(System.Exception exception, System.Guid handlingInstanceId)
    {
    	if (_oLog.IsErrorEnabled) {
    		_oLog.Error("Unexpected error. Id: " + handlingInstanceId.ToString(), exception);
    	}
    	return exception;

}
}

Jeśli piszesz aplikacje webowe, wtedy może przydać się również ELMAH.

link|flag
1 
Co do biblioteki Enterprise Library z Pattern & Practices, to na pierwszy rzut oka zrownałem ją z bibliotekami log4net - gdzie generalnie aby cos zalogowac, należy najpierw cos wylapac - a mi akurat zależy na logowaniu wyjątków niewyłapanych. Z przykładu wygląda, że sie pomyliłem - zglebię temat – Tomasz B Feb 11 at 8:34

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.