VDR Log Meldungen aus dem Syslog auslagernVDR ist sehr gesprächig. Im log level 2 wird jeder tuning Versuch sowie pid Wechsel protokolliert. Das ist ja grundsätzlich gut und für die Fehlersuche unerlässlich, nur leider wird dabei das syslog sehr unübersichtich und wenn mehrere Dienste am VDR Server arbeiten wird es einfach lästig sich da durchzuwühlen.
Nach folgender Anleitung kann man alle VDR und VDR Plugins Meldungen vom syslog in einen dezitierten VDR Logfile umleiten. Geteste auf ubuntu 16.04 LTS mit VDR Build von Klaus Sources und rsyslog 8.4.2.
- rsyslog Regel erstellen um vdr Log Meldungen umzuleiten:sudo nano /etc/rsyslog.d/30-vdr.conf
In das leere Editor Fenster folgendes kopieren (danke an user "löwe" aus dem
vdr-portal)
# Enhanced VDR log handling. Redirect (and suppress) VDR-messages logged to syslog
## Suppress repeating messages with low relevance
# Messages related to the deactivated VDR-shutdown (on a server)
if $syslogtag startswith 'vdr-shutdown' and $msg contains 'Shutdown deactivated (see /etc/default/vdr)' then stop
if $syslogtag startswith 'vdr' and $msg contains 'executing \'/usr/lib/vdr/vdr-shutdown-message' then stop
if $syslogtag startswith 'vdr' and $msg contains 'saved setup to' then stop
# PID changes
if $syslogtag startswith 'vdr' and $msg contains 'changing pids of channel' then stop
## redirect all remaining VDR related messages to a seperate log file
if $syslogtag startswith 'vdr' then -/var/log/vdr.log
& stop
- Neue VDR Logdatei erstellensudo touch /var/log/vdr.log
sudo chmod 640 /var/log/vdr.log
Je nachdem unter welchem user vdr läuft (debian standard ist user und Gruppe vdr) Permissions anpassen
sudo chown vdr:vdr /var/log/vdr.log
- Logrotate für vdr.log erstellen:sudo nano /etc/logrotate.d/vdr
In das leere Editor Fenster folgendes kopieren:
/var/log/vdr.log
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
create 644 vdr vdr
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
Wer daran insteressiert ist was diese Optionen bedeuten kann im
ubuntuusers.de wiki weiterlesen.
- rsyslog Dienst neu starten sudo service rsyslog restart
logrotate läuft als cronjob und muss also nicht neu gestartet werden. Damit ist das syslog wieder wichtigen Systemmeldungen vorbehalten und VDR mit seinen Plugins kann sich nach Herzenslust im /vdr/log/vdr.log austoben
UPDATES:
- 09.02.2018: im rsyslog.conf die deprecated tilde discard (~) option durch 'stop' ersetzt.