ich schreibe Grade eine Server Software in c++. Jetzt suche ich eine Möglichkeit mir eine Log Datei anzulegen. In meinen ersten Ansatz verwende ich:
1 2 | freopen (LOGFILE,"a",stdout); freopen (LOGFILE,"a",stderr); |
Das Funktioniert gut. Leider bekomme ich dann keine Ausgaben mehr auf der Kommandozeile. Ist ja auch logisch, weil ich den stdout und stderr in eine Datei umlenke. Ich möchte aber auf die Kommandozeilen ausgaben nicht verzichten. Was ich suche ist eine Möglichkeit den stdout und stderr zu duplizieren und nur das Duplikat in eine Datei zu schreiben. Aus einer Shell heraus würde ich mit tee arbeiten. Das setzt aber voraus dass der User des Server dies auch immer tut. Davon kann ich nicht ausgehen. Daher muss ich das in c++ umsetzen.
Kennt jemand eine Praktikable Lösung? Kann man tee aus c++ heraus nutzen?
ps. mein Code ist schon sehr groß und hat hunderte ausgaben. Eine Funktion zu schreiben welche printf() ersetzt und dann einfach zusätzlich in die Datei schreibt möchte ich nicht.