Logfiles für nicht terminierende Prozesse

Logfiles für nicht terminierende Prozesse

Ich schreibe ein Programm, das so konzipiert ist, dass es nie beendet wird. Es wird auch große Protokolle (Dateien) seiner Aktivitäten erstellen. Ich möchte, dass ein Linux-Prozess regelmäßig (alle X Minuten (Cronjob?)) Folgendes ausführt:

  1. Übernehmen Sie die aktuellen Protokolle aus der aktuellen Protokolldatei
  2. Platzieren Sie sie in einer separaten Datei (mit entsprechendem Namen) für die Offline-Speicherung / Entfernung
  3. Kürzen Sie die aktuelle Protokolldatei, damit keine Daten dupliziert werden.

Alleohne Datenverlust oder Unterbrechungzum produzierenden Programm. So dass ich am Ende eine Folge von zeitlich abgegrenzten Protokollen habe

Gibt es hierfür ein Linux-Dienstprogramm oder eine bekannte Lösung? Oder sollte ich diese Protokollierungsfunktion in das Programm integrieren?

Antwort1

Linux verwendet syslogdzur Verwaltung von Protokolldateien. Ich habe dies nicht persönlich verwendet, daher bin ich mir nicht sicher, was die Fallstricke sein könnten, aber im Wesentlichen senden Sie einfach Nachrichten an das Protokoll und der Daemon kümmert sich um die Dateirotation usw.

Siehe hier:http://linux.die.net/man/3/syslog

Sie können die Weiterleitung Ihrer Nachrichten an eine bestimmte Datei konfigurieren /etc/syslog.confund die Protokolle logrotate, glaube ich, auch manuell rotieren lassen oder einen Cron-Job einrichten.

Antwort2

Normalerweise schreiben Daemons nur Logs und sonst nichts. Logrotation ist die Aufgabe einer anderen Software. Normalerweise tut eslogrotateoder ähnliche Software.

verwandte Informationen