W ogólnym
- Jeśli zalogujesz wartości DateTime (nie mówiąc o pól nagłówka datownika ram rejestrowania) upewnij się, że ich zalogować sensownego formatu. "ToString()" zwykle nie jest wystarczające, jeśli potrzebujesz informacji na temat Local vs. Utc lub około milisekund (ja używam "yyyy-MM-dd HH: mm: ss.fff zzz", YMMV)
- Jeśli logujesz się wyjątków, przejdź do "ToString()", a nie cokolwiek innego. Kontrowersyjny być może, ale z różnych powodów wyglądają na here.
Informacje o senstive lub szczegółowe informacje, o których inni już mówili, trzeba uważać. Nie chodzi tylko o ludzi, którzy są uprawnieni do odczytywania twoich dzienników produkcji, uzyskując więcej informacji niż to konieczne, pomyśl też o tym, że jakikolwiek intruz do systemu może uzyskać cenne informacje dla zbyt obszernych dzienników (dlatego nie rejestrowałbym zestawu uprawnień użytkowników z błędem, który nie ma konkretnego, zostało zasugerowane w innej odpowiedzi).
Może to zależeć od środowiska lub klienta, co jest uważane za poufne, ale przykłady są następujące: - Rzeczywiste wprowadzanie danych przez użytkownika w komunikatach o błędach. - Zestawy uprawnień użytkownika itp. - SQL, szczególnie z rzeczywistymi parametrami - Zapytanie XML/struktur reagowania
znalezienie odpowiedniego szczegółowość informacji do dziennika jest zawsze kompromis pomiędzy ilością rejestrowanych informacji, wydajność kosztuje nie tylko pisać, ale również do wytwarzają te informacje w kodzie i senstyczność tych informacji. I to jest powód, dla każdego poważnego systemu logowania sport "poziomy" lub "kategorie".
Można rejestrować potencjalnie uciążliwe informacje na "poziomie" lub "kategorii", które można włączyć w fazie rozwoju, ale wyłączyć w produkcji. Jeśli naprawdę chcesz przejść za burtę, możesz napisać wpis EventLog, gdy twoja aplikacja wykryje, że takie rejestrowanie jest włączone, więc nie "prześlizguje się" w trakcie produkcji.
Wreszcie, należy rozważyć zastosowanie struktury rejestrowania, która umożliwia zmianę poziomów lub kategorii podczas wykonywania. W ten sposób możesz włączyć więcej informacji w razie potrzeby, w kontrolowany sposób, bez zakłócania pracy aplikacji lub resetowania sytuacji, którą chcesz sprawdzić przez konieczność ponownego uruchomienia aplikacji.
zobacz także http://stackoverflow.com/questions/1902133/what-are-the-best-practices-for-include-logging-using-log4net –