Jedną sztuczką, której możesz użyć, jeśli kontrolujesz źródło do aplikacji do rejestrowania, jest maskowanie poziomu dziennika, który chcesz, w samej aplikacji, zamiast w pliku syslog.conf. Zrobiłem to wiele lat temu dzięki aplikacji, która generowała ogromną, ogromną i ogromną ilość dzienników debugowania. Zamiast usuwać wywołania z kodu produkcyjnego, po prostu maskowaliśmy, aby wywołania na poziomie debugowania nigdy nie zostały wysłane do demona. Właściwie znalazłem kod, to Perl, ale to tylko front dla wywołania setlogmask (3).
use Sys::Syslog;
# Start system logging
# setlogmask controls what levels we're going to let get through. If we mask
# them off here, then the syslog daemon doesn't need to be concerned by them
# 1 = emerg
# 2 = alert
# 4 = crit
# 8 = err
# 16 = warning
# 32 = notice
# 64 = info
# 128 = debug
Sys::Syslog::setlogsock('unix');
openlog($myname,'pid,cons,nowait','mail');
setlogmask(127); # allow everything but debug
#setlogmask(255); # everything
syslog('debug',"syslog opened");
Nie wiem, dlaczego użyłem po przecinku zamiast maską bitową ... wzruszyć
Istnieje również rsyslog. Nie wiem, czy jest szybszy, ale warto wypróbować. –