Realtime programm und syslog

OP #4275842
Lesenswert?
• ▲
▼
Zurzeit arbeite ich an einer realtime Anwendung auf linux, mit einem 
selbstgeschriebenem Logger.
Dabei wird das Programm gestartet, welches den realtime Thread erzeugt 
und daneben einen Logging Thread. Insgesamt laufen also 3 Threads, wobei 
die beiden nicht-logger in einen Buffer schreiben können, der dann durch 
denn Logging Thread ausgetauscht und geleert wird (print auf console, 
oder Weiterleitung in Datei/Socket/...)

Dieser Logger wurde von einem Arbeitskollegen geschrieben, der nicht 
mehr hier arbeitet. Das Problem ist nun, dass die Logs vom RT-Thread 
nicht ausgegeben werden.

Um die Wartbarkeit zu erhöhen, würde ich am liebsten den Logger Code 
rausschmeissen und syslog benutzen, welches bereits im Kernel enthalten 
ist.

Nun meine Frage, bevor ich all die Teile umschreibe, welche Loggen, kann 
das mit der realtime Bedingung funktionieren? Es dürfte nämlich nicht 
geschrieben werden, solange mein RT-Thread läuft, sondern erst danach.
Ich habe schon gelesen, dass syslog thread-safe sei, aber reicht dies 
aus?
#4276389
Lesenswert?
• ▲
▼
syslog() könnte auf Platte, Netzwerk, oder sonstige Geräte zugreifen und 
hat deshalb keine Obergrenze für die Ausführungszeit.

In der Praxis kommuniziert syslog() einfach nur mit dem syslog-Daemon 
über das /dev/log-Socket, was bedeutet, dass nebenher noch ein separater 
Prozess werkelt.

Aber dein Problem ist ja anscheinend die Kommunikation deiner Threads 
untereinander; da wird das Austauschen des Loggers nicht helfen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.