Całkowicie zgadzam się z tym, co powiedzieli hhafez i nos. Kierujesz się właściwą ścieżką z pakietem logowania, zamiast próbować tworzyć własne. To jest o wiele czystsze i łatwiejsze do uzyskania. Logowanie do pliku tekstowego jest znacznie łatwiejsze w zarządzaniu długoterminowym (przy typowych zestawach umiejętności projektowych) niż rejestrowanie DB, ale jeśli planujesz jakąkolwiek złożoną analizę raportowanych danych, czasami łatwiej jest już mieć ją w DB.
Jeśli debugowanie jest jednym z wyznaczonych celów wdrożenia rozwiązania do rejestrowania, konieczne jest zestandaryzowanie wszystkich poziomów logowania z góry i uczynienie tego częścią procesu weryfikacji kodu. Wystarczająco dużo różnic w zakresie ziarnistości, aby stopniowo zwiększać głębokość raportowania, przechodząc do następnego poziomu. To bardzo frustrujące, gdy próbujesz rozwiązać problem z PROD, nie masz wystarczającej ilości informacji w dzienniku, aby zobaczyć problem, a następnie przejdź do następnego poziomu rejestrowania i całkowicie zapełnij dzienniki tak dużą ilością bańki, że nie możesz zobaczyć lasu dla drzew (i dzienniki są rzucane co 5 minut ze względu na objętość). Widziałem, jak to się stało.
W większości przypadków rejestrowania plików tekstowych wydajność nie powinna stanowić problemu. Trochę trudniej z logowaniem DB. Wykonanie wkładki jest tylko nieco bardziej intensywne niż dołączanie do pliku tekstowego, ale jest to wielkość jednostkowa, która sprawia, że jest ona o wiele brzydsza w skali.
Ponadto, jeśli zamierzasz przeprowadzić dowolną analizę dziennika offline, powinieneś wybrać format pliku dziennika, który będzie łatwo rozszerzalny i nie będzie wymagał ogromnych zmian w kodzie analizy, jeśli musisz dodać coś do dziennika. Trzymaj się z dala od zagnieżdżonych, wieloczęściowych struktur wiadomości. Analizowanie tych zmian może być uciążliwe.
Życzymy powodzenia!