Ich bastele ja schon seit einiger Zeit an einem lokalen (Instant Webserver) Server. Grundsätzlich (minimal) funktioniert der auch schon. Zum Debugging erzeuge ich dazu einige Ausgaben. Jeder Ausgabenzeile ist die Prozess-ID vorangestellt. Soweit so gut.
Da ein ordentlicher Server aber mehrere Anfragen gleichzeitig bearbeiten kann, ergibt sich daraus ein kleines Problem. Die Ausgaben erscheinen durcheinander. Hier mal ein Beispiel (Ausschnitt):
( 3730) GET /$THUMB/a42d21f29d40e9b7f9312db670e97152.png HTTP/1.1 ( 3730) Host: 127.0.0.1:8080 ( 3729) GET /$THUMB/020c8c2395320d992a3ae6f362eb3c7d.png HTTP/1.1 ( 3729) Host: 127.0.0.1:8080 ( 3730) User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0 ( 3730) Accept: image/avif,image/webp,*/* ( 3730) Accept-Language: de,en-US;q=0.7,en;q=0.3 ( 3729) User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/113.0 ( 3730) Accept-Encoding: gzip, deflate, br ( 3729) Accept: image/avif,image/webp,*/* ( 3730) DNT: 1 ( 3730) Connection: keep-alive ( 3729) Accept-Language: de,en-US;q=0.7,en;q=0.3 ( 3730) Referer: http://127.0.0.1:8080/ ( 3729) Accept-Encoding: gzip, deflate, br ( 3730) Sec-Fetch-Dest: image ( 3729) DNT: 1 ( 3730) Sec-Fetch-Mode: no-cors ( 3729) Connection: keep-alive ( 3730) Sec-Fetch-Site: same-origin ( 3730) -------- ( 3729) Referer: http://127.0.0.1:8080/ ( 3730) HTTP/1.1 200 OK ( 3730) Date: Sat, 30 Aug 2025 15:10:38 GMT ( 3730) Server: ifserver 0.4 ( 3729) Sec-Fetch-Dest: image ( 3730) Last-Modified: Tue, 27 May 2025 21:02:02 GMT ( 3730) Accept-Ranges: none ( 3730) Content-Length: 75914 ( 3730) Connection: keep-alive ( 3730) keep-alive: timeout=10, max=200 ( 3730) Content-Type: image/png ( 3730) ( 3729) Sec-Fetch-Mode: no-cors ( 3730) Header size: 250 ...
Man sieht, dass die Ausgaben der verschiedenen Prozesse durcheinander kommen. Die Frage ist jetzt, sollte oder könnte man die Ausgaben der verschiedenen Prozesse irgendwie zusammenfassen, so das es besser lesbar ist? Und wenn ja, wie kann man das umsetzen? Momentan verwende ich dafür einfache printf() Anweisung.
p.s.: die Prozesse werden per fork() erzeugt (falls das wichtig ist).