Co prawda dopiero zaczynam przerzucać się z programowania AVR-ów na platformy oparte na Linuksie, ale już napisałem kilka (mniej lub bardziej) użytecznych programów. Zwykle współpracują one z konstrukcjami na mikrokontrolerach i działają w tle, a więc jako deamony nie mają dostępu do stdout, stdin oraz stderr. Wskazane jest jednak posiadanie jakiejś możliwości przechwycenia informacji o wystąpieniu błędu. Będę więc musiał dodać możliwość zapisywania informacji w logu.
Mam kilka pytań z tym związanych:
Jaka jest najlepsza metoda? Z tego co wyczytałem, to Linux posiada odpowiednie narzędzie w postaci komendy syslog(). O ile mi wiadomo, domyślnie zapisuje ona wszystkie wiadomości w pliku /var/log/syslog. Mi bardzo zależy jednak na możliwości posortowania komunikatów - przede wszystkim powinny one lądować w osobnym pliku, a najlepszej jeszcze z rozdzieleniem na kategorie (błędy, notyfikacje o typowych zdarzeniach itp.). Z tego co czytałem, takie zachowanie można też wymusić na syslogu przez odpowiednią konfigurację. Może jednak prostszym wyjściem będzie po prostu pisanie do odpowiedniego pliku bezpośrednio z poziomu kodu programu?
Kolejna sprawa, która mnie interesuje, to mechanizm odpowiedzialny za archiwizację starych wpisów w /var/log. Z tego co widzę starsze pliki w tym katalogu są kompresowane do tar.gz. Jaki proces się tym zajmuje? Sam syslog czy jeszcze coś innego? Własnoręcznie zapisane pliki też będą się w ten sposób archiwizowały, czy trzeba to jakoś osobno zainicjować?
|