dodaj nową funkcję syslog

27

Chciałbym używać syslog do rejestrowania wiadomości pochodzących z mojej strony opartej na PHP. Moje pytanie brzmi - czy mogę dodać niestandardową nazwę obiektu? Wiem, że istnieją predefiniowane obiekty, takie jak:

auth, authpriv, cron, dæmon, kern, lpr, mail, mark, news, syslog, user, UUCP and local0 through local7.

I, jak rozumiem, mogłem do tego użyć obiektów local0 - local6.

Ale po prostu czuję, że gdybym mógł dodać coś takiego do syslog:

mySiteName.* /var/log/mySiteName.log

Byłoby to wizualnie łatwiejsze do zrozumienia dla innych. Niestety powyższa linia powoduje:

rsyslogd-3000: unknown facility name "mySiteName"

Więc - czy istnieje sposób na użycie niestandardowej nazwy obiektu?

Stann
źródło

Odpowiedzi:

27

Syslog interfejs pozwala tylko stały zestaw obiektów, zdefiniowany przez stałe w /usr/include/sys/syslog.h. Jedyne postanowienie dotyczące niestandardowych udogodnień jest local0zakończone local7.

Aby oddzielić dzienniki różnych serwerów, możesz użyć filtrów dopasowujących źródło lub tekst każdego komunikatu dziennika. Rsyslog ma dość potężne filtry (przeczytaj właściwości dostępne do dopasowania ).

Gilles „SO- przestań być zły”
źródło
7

Nie do końca dotyczy pytania, ale mam nadzieję, że jest to przydatny przykład dla demonów, które nie zapewniają własnego zaplecza:

:programname, isequal, "uptimed" /var/log/uptimed.log
eMPee584
źródło
2
Które wdrożenie syslog ma na myśli? (Czy to ten standard?)
sr_
1
Dodanie tej linii do /etc/rsyslog.conf działało z rsyslogd 8.4.2
ztk