So protokollieren Sie make-Ausgabe ohne Pufferung von stdout und stderr

8

Ich habe ein Problem mit der Protokollierung zur Ausgabe von einem automatisierten Build.

Die Erstellung erfolgt mit einem Makefile und dem Makefile-Dienstprogramm.

Das Problem ist, dass normale Ausgaben wie Compiler-Befehlszeilen zu stdout gehen und Kompilierungsfehler zu stderr gehen.

Ich möchte die Ausgabe vom Build erhalten, so wie sie auf dem Bildschirm angezeigt würde. So etwas wie:

%Vor%

Was ich (aus einem ksh-Skript) versucht habe, ist:

mache -k & gt; build.log 2 & gt; build.log

Dies führt zu einer einzelnen Protokolldatei, aber das Problem ist, dass die Datenströme gepuffert sind und das Ergebnis in der Protokolldatei durcheinander ist.

Ich könnte die Ausgabe in zwei separate Protokolldateien aufzeichnen, aber dann hätte ich keine Informationen darüber, wie sie in einer einzigen Protokolldatei zusammengefügt werden können.

Gibt es eine Möglichkeit, in diesem Fall die Pufferung für stdout und stderr zu deaktivieren?

    
Jeroen Dirks 17.02.2009, 19:03
quelle

4 Antworten

23
%Vor%

Das sollte besser für Sie funktionieren, da es stderr und stdout nicht separat umleitet, sondern stderr nach stdout umleitet, was die Pufferung zur Synchronisation bringen sollte.

Wenn Sie es sowohl in einer Datei als auch auf der Konsole speichern möchten:

%Vor%     
Ryan Graham 17.02.2009, 19:11
quelle
4

Versuchen Sie es

%Vor%     
S.Lott 17.02.2009 19:06
quelle
0
  

Ich könnte die Ausgabe in 2 erfassen   separate Protokolldateien aber dann würde ich   habe keine Informationen darüber, wie man sie wieder klebt   zusammen in einer einzigen Protokolldatei.

Sie wieder zusammen zu kleben ist schwierig, aber es gibt auch eine richtige Antwort, und es funktioniert! Siehe " Wie kann ich stdout und stderr in verschiedenen Dateien speichern oder umleiten? "von Vivek Gite.

    
talkaboutquality 21.04.2009 07:44
quelle
-1

setbuf (stdout, NULL); - & gt; schaltet die Pufferung der Standardausgabe aus

    
Prajwal 06.05.2009 06:44
quelle

Tags und Links