eigene Log-Datei für den VDR

  • Hi


    ich verwende den CT-VDR 1.6 aus der letzten CT.
    Jetzt meine Frage, gibt es eine möglichkeit alle Meldung des VDR in eine eigene Log-Datei schreiben zu lassen?
    Wenn ja wie?
    Hab hier schon alles durchsucht aber irgendwie nichts richtiges gefunden.


    Hiiiiillllffffeeee


    Danke Jklusi

  • Wenn ich das richtig im Kopf habe (der VDR ist zu hause :)), dann gibt es zwei Ausgaben des c't VDR

    • Ausgaben über stderr
    • Ausgaben über syslog

    Die stderr-Ausgaben landen in einer Datei im tmp-Verzeichnis, die nur für den VDR da ist. Die syslog-Ausgaben landen natürlich im messagelog, aber auch im user.log, wo eigentlich kaum andere System-Ausgaben stehen. Daher lese ich bei mir nur das user.log, d.h. ich gebe es per tail -f /var/log/user.log>/dev/tty8 auf dem Monitor über dem Fernseher aus und kann sehen, was gerade abgeht. Natürlich kann man den syslog noch feiner einstellen, dass nur VDR-Ausgaben in eine Datei gehen, ist aber IMHO unnötig.


    Gruß,
    ARK

    VDR
    ASUS A7N8X-X, AMD 2600+, 2 GB, 320 GB HD, Hauppauge DVB-S 1.3, Hauppauge Nova-S-Plus, Funktastatur
    Debian 4.0/Etch-Kernel 2.6.18-5-486
    c't-VDR 6.1 mit e-tobi 1.6.0 (neu gepatched ohne sortrecordings), acpi, vdradmin-am, burn, osdteletext, ffnetdev, audiorecorder, infosatepg, ...
    Client
    dbox2 (Sagem 2xI_C) mit Neutrino-Derivat

  • Ich verwende für diesen Zweck den etwas mächtigeren Syslogger "syslog-ng". Hier mal die entsprechenden Änderungen bzw. Erweiterungen (/etc/syslog-ng/syslog-ng.conf)


    Zunächst einmal eine neue destination rule anlegen.


    Code
    destination df_vdr { file("/var/log/vdr/vdr.log"); };


    Hiermit werden nur VDR relevante messages herausgefilter.


    Code
    filter f_vdr{ program(vdr); };


    Damit die VDR Meldungen nicht zusätzlich noch in andere logs gepumpt werden kann man die bestehende f_user und f_syslog (oder andere) Filterregeln ändern.


    Code
    filter f_syslog { not facility(auth, authpriv) and not program(vdr); };
    filter f_user { facility(user) and not program(vdr); };


    Abschliessend fehlt dann nur noch die eigentliche log Anweisung.


    Code
    log {
                source(s_all);
                filter(f_vdr);
                destination(df_vdr);
    };


    Bei Verwendung von neuen log destinations sollte man darauf achten auch eine dementsprechende logrotate Regel anzulegen, damit die Festplatte nicht nach einigen Tagen, Wochen oder Monaten plötzlich voll ist. (/etc/logrotate.d/vdr)


    Code
    /var/log/vdr/vdr.log {
          rotate 4
          missingok
          notifempty
          daily
         compress
    }


    Ich hoffe das hilft weiter ..


    Gruß
    asciii

    HomeServer: Athlon 64 X2 3800+ EE SFF + Gigabyte GA-M61P-S3 - Debian Etch (2.6.22-3-686) + 1.6.0-3ctvdr1 + 2x KNC1 .v1 (DVB-C)

  • In der /etc/default/vdr kannst du angeben, wie das log ausgegeben werden soll. Mit '--log 2.0' werden logs (ohne debug) an die facility local0 ausgegeben.
    In der /etc/syslog.conf kann dann local0 in eine andere Datei umgelenkt werden. Das sieht dann bei mir so aus: 'local0.* -/var/log/vdr'
    Wenn diese logs nicht zusätzlich in der syslog landen sollen, in der entsprechenden Zeile mit der Datei ein 'local0.!*' einfügen. Ein 'man syslog.conf' zeigt die Möglichkeiten.
    Ein zusätzliches logrotate ist natürlich keine schlechte Idee.

  • servus jklusi,


    wie "nix gefunden" :schiel
    kuckst du hier vdrlog, so hab ichs auch hinbekommen... und das will was heißen ;D


    gruß,lars

    Asus H170 PRO GAMING, Intel Core i7-6700T, 16GB RAM, GeForce GTX 1050 2GB, Samsung SSD 860 EVO 1TB SSD + 3TB WD Red, Mystique SaTiX-S2 Dual, Archlinux -> VDR4Arch


    "Freunde sind Menschen, die dich mögen obwohl sie dich kennen"

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!