2012-10-20 13 views
17

Próbuję napisać lepszą obsługę błędów i logikę debugowania w jednej z naszych aplikacji. Czy ktoś może wyjaśnić różnicę między klasą Debug and Trace? Dokumentacja wygląda dość podobnie. Chcę używać tych klas w połączeniu z językiem NLog, aby ulepszyć nasze działania związane z debugowaniem.Jaka jest różnica między klasą Debug a klasą Trace?

+1

Kolejna rozmowa na temat tego problemu http://stackoverflow.com/questions/179868/trace-vs-debug-in-net-bcl –

Odpowiedz

3

Debugowanie jest używane podczas debugowania. Trace zapisuje do pliku dziennika. To trochę jak logowanie. Oba są bardzo podobne, ale umożliwiają śledzenie długoterminowej retencji, debugowanie w celu debugowania w czasie rzeczywistym.

16

Klasy Debug i Trace mają bardzo podobne metody. Podstawową różnicą jest to, że wywołania do klasy Debug są zwykle zawarte tylko w kompilacji debugowania, a śledzenie jest zawarte we wszystkich kompilacjach (debugowanie i wydawanie). Możesz to kontrolować za pomocą flag kompilatora DEBUG i TRACE. Jeśli spojrzysz na dokumentację dla obu, zauważysz ConditionalAttribute opisując metody. Powoduje to, że wywołania metod są uwzględniane w plikach binarnych tylko wtedy, gdy zdefiniowana jest odpowiednia flaga kompilatora. Można zdefiniować własną flagę kompilatora i używać jej w połączeniu z ConditionalAttribute w podobny sposób. Zauważ, że jeśli użyjesz tego, metody nie zostaną usunięte ze skompilowanych plików binarnych. Strony połączeń są modyfikowane, aby usunąć wywołania metod.

Powiązane problemy