Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Produktivserver Log-Dateien

Log-Dateien

erstellt von Veit Schiele zuletzt verändert: 26.08.2010 10:02 © Veit Schiele 2006–2010

Zope erstellt drei verschiedene Arten von Log-Dateien:

eventlog
Ereignisse, die Debug-Informationen über in der Zope-Instanz verwendete Produkte enthalten.
logger access
Zugriffe, mit denen sich Site-Statistiken produzieren lassen.
logger trace
Detaillierte Informationen über Server-Anfragen (requests).

Die Standardkonfiguration für eine Log-Datei sieht so aus:

<eventlog>
    level info
    <logfile>
        path  /home/veit/myproject/var/log/instance1.log
        level info
    </logfile>
</eventlog>

Mögliche Angaben für level sind critical, error, warn, info, debug und all.

Handler

Jeder der drei logger -Abschnitte der zope.conf kann mehrere handler-Abschnitte enthalten.

Fünf verschiedene Handler lassen sich angeben:

  • logfile
  • syslog
  • win32-eventlog
  • http-handler
  • email-notifier.

Um z.B. eine E-Mail-Benachrichtigung bei Fehlern zu erhalten kann der Eintrag folgendermaßen geändert werden:

<eventlog>
    level info
    <logfile>
        path ${buildout:directory}/var/log/instance1.log
        level info
    </logfile>
    <email-notifier>
        from zope@veit-schiele.de
        to admin@veit-schiele.de
        subject "Zope Error"
        level error
    </email-notifier>
</eventlog>

Mögliche Angaben für jeden Handler sind in parts/zope2/lib/python/ZConfig/components/logger/handlers.xml beschrieben.

Packen und Rotieren der Log-Dateien

  • Ändern Sie die deployment.cfg folgendermaßen:

    [buildout]
    parts =
       …
       logrotate
    
    …
    [logrotate]
    recipe = collective.recipe.template
    input = templates/logrotate.conf
    output = ${buildout:directory}/etc/logrotate.conf
    

    Mit collective.recipe.template lassen sich Textdateien aus einer Vorlage generieren, wobei die buildout-Variablen verwendet werden können.

  • Dabei können Sie ein Verzeichnis templates und darin eine logrotate.conf-Datei erstellen, z.B. mit folgendem Inhalt:

    daily
    missingok
    rotate 14
    mail zope-logs@veit-schiele.de
    compress
    delaycompress
    notifempty
    size 1k
    ${buildout:directory}/var/log/zeo.log {
        postrotate
            ${buildout:bin-directory}/zeo logreopen
        endscript
    }
    
    ${buildout:directory}/var/log/instance1.log ${buildout:directory}/var/log/instance1-Z2.log {
        sharedscripts
        postrotate
            /bin/kill -USR2 $(cat ${buildout:directory}/var/instance1.pid)
        endscript
    }
    
    • Damit werden alle Log-Dateien in /home/veit/myproject/var/log/ täglich rotiert;
    • Log-Dateien älter als 14 Tage werden gelöscht.
    • Die Log-Dateien werden an die E-Mail-Adresse zope-logs@veit-schiele.de gesendet.
    • Weitere Informationen zu logrotate erhalten Sie mit man logrotate.

Anmerkung: Unter Windows steht Ihnen logrotate nicht zur Verfügung. Hier können Sie sich ein eigenes Batch-Skript schreiben, das Ihnen die Log-Dateien rotiert. Als Vorbild kann z.B. folgendes Skript genommen werden: http://www.sprint.net.au/~terbut/usefulbox/apachelogrot.htm

Cron

Ein Eintrag in die crontab mit crontab -e könnte z.B. so aussehen:

7 0 * * * /usr/sbin/logrotate -s  /home/veit/myproject/var/log/logrotate-status /home/veit/myproject/etc/logrotate.conf

Damit wird täglich um 0:07 Uhr logrotate mit den Einstellungen von /home/veit/myproject/etc/logrotate-zope aufgerufen und ein Statusbericht in /home/veit/myproject/var/log/logrotate-status geschrieben.

Dieser Eintrag kann auch automatisiert mit dem Rezept z3c.recipe.usercrontab erstellt werden. Hierzu wird in der deployment.cfg folgendes eingetragen:

[buildout]
parts =
    …
    logrotate-crontab

…

[logrotate-crontab]
recipe = z3c.recipe.usercrontab
times = 7 0 * * *
command = /usr/sbin/logrotate -s ${buildout:directory}/var/log/logrotate-status ${buildout:directory}/etc/logrotate.conf
Artikelaktionen