2009-08-06 15 views
5

Mam wyjątek, który muszę przełknąć (wyjątek podczas logowania), jednak nie chcę, aby informacje o wyjątku zostały całkowicie utracone przez mgłę czasu, więc pomyślałem, że równie dobrze mogę wyjście to debugować za pomocąZapis do debugowania w trybie zwolnienia

Debug.Write(ex.ToString()); 

ten sposób, jeśli staje się niezbędne wsparcie może przynajmniej użyć DebugView na problemach maszynowych konieczności.

Problem polega na tym, że klasa debugowania została usunięta w trybie zwolnienia - w jaki sposób mogę wydać coś do debugowania w trybie zwolnienia?

Odpowiedz

16

Wystarczy użyć

Trace.Write(ex.ToString()); 

To działa tak samo jak Debug.Write(ex.ToString()); ale nie zostaną usunięte w trybie wydania (tak długo, jak nie usunąć definicję stałej ślad w ustawieniach projektu)

+3

Pamiętaj, aby obracać pliki dziennika po ~ 14 dniach, aby uniknąć wypełnienia dysku twardego. – JBRWilkinson

2

Może warto zajrzeć do jakiegoś systemu logowania. Preferuję log4net, w którym masz różne poziomy logowania (DEBUG, INFO, WARN, ERROR), różne rejestratory (możesz umieścić jeden program rejestrujący dla każdej ważnej części aplikacji) i możesz ustawić różne poziomy debugowania dla różnych rejestratorów, zmieniając tylko plik konfiguracyjny. Więc jeśli masz problem w jakimś obszarze kodu, możesz ustawić poziom DEBUG dla tego loggera (ów) i kiedy skończysz możesz przywrócić oryginalny poziom.

To tylko zadrapania powierzchni, istnieje wiele innych funkcji, takich jak wysyłanie wiadomości e-mail na błędy lub logowanie do DB.