Was ist die Zielgruppe Ihres Programms?
Wenn Sie eine Desktop-Anwendung erstellen und von den meisten Benutzern nicht erwartet werden kann, dass sie die Protokolle lesen, sollten Sie sie behandeln. Nicht nur rotierende, sondern auch alte löschen - Sie wollen nicht die Festplatte des armen Benutzers füllen!
Auf der anderen Seite, wenn die Zielgruppe erfahrene UNIX-Systemadministratoren sind, müssen Sie einen anderen Ansatz wählen.
Sysadmins benötigen Funktionen, die Sie nicht erwarten können. Senden Sie sie per E-Mail, schreiben Sie sie in Append-Only-Speicher, Sie nennen es. Für diese Zielgruppe ist es am besten, wenn Ihre Protokollierung so flexibel wie möglich ist. Flexibel (in UNIX) bedeutet einfach - schreiben Sie einfach in eine Datei und betrachten Sie sie als erledigt.
Auch Sysadmins wollen nicht wieder lernen, wie wieder Logging zu tun. Auch wenn Sie diese Art von Funktion bereitstellen möchten, stellen Sie sicher, dass der Standardwert innerhalb dieser Annahme angemessen ist.
Endlich. Tdelaney hat einen wichtigen Punkt angesprochen: Der Standard FileHandler
schenkt der Datei, auf die er schreibt, nicht viel Aufmerksamkeit. Sie sollten einen WatchedFileHandler verwenden, der speziell für diesen Zweck geschrieben wurde.
'logrotate.d' hängt davon ab, dass der Logger seinen Dateizeiger bei jedem Log-Ereignis schließt und wieder öffnet. Ich bin mir nicht sicher, ob der Standard-Python-Logger das tut. – tdelaney
@tdelaney es nicht, aber es gibt eine gute Alternative innerhalb 'Logging', siehe unten in meiner Antwort – goncalopp
Ich bemerkte, dass Sie Ihre Frage bearbeitet, um' WatchedFileHandler' zu erwähnen. Meinst du "RotatingFileHandler"? – goncalopp