2009-03-23 31 views

Odpowiedz

16

Zobacz Microsoft Enterprise Library. Obejmuje on Logging Application Block, a dokumentacja może być tym, czego szukasz. Możesz zobaczyć MSDN Documentation bez konieczności instalowania biblioteki w pierwszej kolejności. W szczególności zobacz Key Scenarios i Design of the Logging Application Block, aby odpowiedzieć na twoje pytanie (może nawet, jeśli nie korzystasz z .NET).

UPDATE (23 kwietnia 2013) Zobacz Embracing Semantic Logging stosując nowy Semantic Logging Application Block

+1

Bardzo polecam ludziom przyjrzeniu Semantic Bloku Logging Application przed Logging Application grupowych. Korzyści są znaczne. –

+0

, więc przychodzę szukać najlepszych praktyk rejestrowania .. i dostaję jakiś produkt korporacyjny wciśnięty w moje gardło? lol poważnie? – abbood

+0

Tak, poważnie. Jest bezpłatny i bardzo dobrze połączony. Nikt cię nie zmusza do użycia. Ale jeśli czytasz dokumenty z otwartym umysłem, poznasz dobre praktyki, bez względu na to, co wybierzesz w końcu. –

3

Istnieje mnóstwo ram wylogowanie się tym log4net i log4j, ale w sam raz dla Ciebie będzie zależeć od platformy i systemu.

Najlepsze techniki rejestrowania będą w dużej mierze zależały od używanej platformy i projektu systemu. Musisz wiedzieć/zdecydować, ile informacji potrzebujesz, aby zdiagnozować określony typ problemu. Generalnie powinieneś instrumentować swój kod w sposób, który nie wymaga dużej ilości powtórzeń lub modyfikacji kodu. Ramy logowania w .NET, które używają przypisanych klas i metod, są dobrym przykładem oprzyrządowania o niskim wpływie. Powinieneś także móc modyfikować poziom logowania (Low via Verbose) poprzez konfigurację bez konieczności wyłączania lub restartowania jakichkolwiek usług.

4

Kilka wskazówek:

  • dziennika nie więcej niż jest to konieczne w wydaniu/produkcja
  • error log kiedykolwiek, jeśli to możliwe make to:
    • operacja dziennika umieścić w var temp (wektor/lista)
    • na końcu, jeśli nie wystąpiły błędy, odrzuć dzienniki, w innym przypadku wyślij do pliku dziennika
  • utworzyć flagę do kontrolowania poziomu informacji zalogować
  • sterowania zachowanie dziennika w środowisku produkcyjnym/rozwój
  • kontrola dostępu współbieżności w pliku dziennika
  • sterowania ile dziennika długo plik jest potrzebne
  • kontrolę ile czasu pliku dziennika powinny zostać utrzymane
  • czasami jest potrzebne do przeprowadzenia weryfikacji wydajności, umieścić czasomierze gdzie konieczne
+0

Czy masz jakieś przykłady rejestrowania "wektorowego" opisanego powyżej? – EightyEight

+0

Nie mogę dostarczyć wewnętrznych czcionek, ale uważam, że bardzo łatwo jest zaimplementować bufor przy użyciu wektora , wystarczy wstawić zdarzenia do kontenera. – lsalamon

+0

Dzięki, rozumiem koncepcję, ale miałem nadzieję, że ktoś już przeszedł przez kłopoty. Znalazłem kilka programów rejestrujących dla Ruby, które mają pojęcie "kontekstu", ale żaden z nich nie jest na tyle wyrafinowany, aby zrzucić informacje śledzenia w przypadku błędu w kontekście. – EightyEight

5

dobry artykuł jest napisany w tej sprawie przez Effective logging practices ease enterprise development.

Sedno jest:

  1. wiedzieć potrzeby logowania.
  2. Zapoznaj się z dostępnymi opcjami i najlepiej do siebie pasującymi (w zależności od platformy/systemu operacyjnego/itp.)
  3. Zaplanuj strategię z wyprzedzeniem przed wdrożeniem.
  4. Kontynuuj przeglądanie wprowadzanych zmian.
+1

Specyficzna wersja Apache Log4J, ale zawiera kilka pomocnych bitów. –

+4

Link jest uszkodzony ... –

+0

Naprawiono link! –

2

Serilog to kolejne rozwiązanie do zorganizowanego rejestrowania, które stało się popularne od czasu, gdy zadano mu pierwsze pytanie.

W wywiadzie, pan Blumhardt mówi o budowaniu biblioteki w wyniku przeżywa ból wyrębu, że wszyscy doświadczyliśmy. Rozmawiają w programie o prostym rejestrowaniu podczas początkowego rozwoju i formalizowaniu rejestrowania w miarę dojrzewania projektu. Dobre rzeczy i mogą dodać do bazy wiedzy najlepszych praktyk poruszonych w pytaniu.

ze strony:

Podobnie jak w innych bibliotekach rejestrowania NET, Serilog zapewnia rejestrowanie diagnostyczne do plików, konsoli i tak dalej. Jest łatwy w konfiguracji, ma czysty interfejs API i jest przenośny między najnowszymi platformami .NET.

W przeciwieństwie do innych bibliotek rejestrowania dla .NET, Serilog jest zbudowany z myślą o uporządkowanych danych logów . Parametry przekazane wraz z komunikatami dziennika nie są destruktywnie renderowane do formatu tekstowego. Zamiast tego, są one zachowane jako strukturze danych, które mogą być napisane w formie dokumentu do sklepu NoSQL danych

2

Jeśli naprawdę chcesz do nurkowania w filozofii na ten temat, spróbuj "Do Not Believe in Structured Logging" na blogu Miloslav Trmač użytkownika.

„... te lekcje zostały nauczyli się na własnej skórze ...”

Powiązane problemy