Ich habe ein Problem mit der Protokollierung zur Ausgabe von einem automatisierten Build.Wie protokolliert man make output ohne Pufferung von stdout und stderr
Der Build ist mit einem Makefile und dem Makefile-Dienstprogramm abgeschlossen.
Das Problem ist, dass normale Ausgabe wie Compiler-Befehlszeilen zu stdout gehen und Fehler kompilieren zu stderr gehen.
Ich möchte die Ausgabe aus dem Build erhalten, wie es auf dem Bildschirm angezeigt würde. So etwas wie:
(stdout) CC -c file.cpp
(stderr) Compile error at file.cpp line 232, blah blah blah
(stdout) CC -c file2.cpp
Was ich versucht (von KSH-Skript) ist:
make -k> build.log 2> build.log
Dies resultiert in einer einzigen Protokolldatei aber Das Problem besteht darin, dass die Streams gepuffert sind und das Ergebnis in der Protokolldatei daher durcheinander ist.
Ich könnte die Ausgabe in 2 separate Protokolldateien erfassen, aber dann hätte ich keine Informationen darüber, wie Sie sie wieder in einer einzigen Protokolldatei zusammenkleben.
Gibt es eine Möglichkeit, in diesem Fall die Pufferung für stdout und stderr zu deaktivieren?
Hallo Ryan, es funktioniert wie ein Charme, aber ich habe eine Frage, wie man beide Meldungen protokolliert und sieht, um Zeit zu machen? Ihr Befehl protokolliert nur die Nachricht. Danke –
@LoiDang aktualisiert, um eine Alternative hinzuzufügen, die sowohl eine Datei als auch die Konsole ausführt. –