Wir entwickeln sowohl Standard- als auch Echtzeitanwendungen, die auf einem RT-Linux laufen. Frage ist, was wäre eine effiziente Möglichkeit, Anwendungsspuren sowohl von Echtzeit- als auch von Nicht-Echtzeit-Prozessen zu protokollieren ?
By effecient , ich meine, dass der Prozess der Protokollierung von Anwendungstraces keine RT-Perf-Treffer durch steigende Latenz etc. verursachen sollte.
Traces sollten idealerweise in einer einzigen Datei mit Zeitstempel gespeichert werden, um die Interaktion zwischen den Prozessen zu verfolgen.
Da Sie Linux verwenden, können Sie syslog () verwenden:
openlog () öffnet eine Verbindung zum Systemlogger für ein Programm.
Das bedeutet, dass Ihr Programm Nachrichten an ein anderes Programm weiterleitet, das eine niedrige Priorität haben kann.
Wenn Sie etwas ausgefalleneres möchten, dann Boost-Protokollierung .
Für die Echtzeit-Protokollierung empfehle ich, andere Methoden zu verwenden als die bloße Protokollierung in Dateien. Wenn Sie eine Menge Informationen in Dateien schreiben, beeinträchtigt Ihre Leistung.
Ich kann andere leichtere Mechanismen empfehlen: