Hallo. Mittels folgendem Makro sollen Ausgaben in eine Datei geschrieben werden: #define TRACE(log, ...) fprintf(log, _VA_ARGS_) TRACE(log,"TIME: %s/%s FUNCTION: %s MESSAGE: text \n", _DATE_, _TIME_, _FUNCTION_); Die Ausgaben sollten hierbei bündig erfolgen, in etwa so: TIME: Jul 16 2012/10:47:34 FUNCTION: main MESSAGE: text TIME: Jul 16 2012/10:47:34 FUNCTION: function_foo MESSAGE: text Nur bekomme ich es nur so hin: TIME: Jul 16 2012/10:47:34 FUNCTION: main MESSAGE: text TIME: Jul 16 2012/10:47:34 FUNCTION: function_foo MESSAGE: text Wie muss ich die Formatzeichen setzen um zb. MESSAGE bündig schreiben zu können. Danke. Gruß Christian
%s mit Feldbreitenangabe verwenden, Feldbreiten vorher auszählen. Oder mit Tabulatoren arbeiten und einen Logdateibetrachter verwenden, der die Tabulatoren sinnvoll auswertet.
Die Breiten manuell zu zählen um eine bündige Ausrichtung zu erreichen, wollte ich vermeiden. Ich hatte eher auf eine Möglichkeit gehofft, mit der eine automatische Ausrichtung realisiert werden kann. (z.b. Ausrichtung vom längsten Funktionsnamen aus,...) Danke.
Christian schrieb: > (z.b. Ausrichtung vom längsten Funktionsnamen aus,...) und woher soll das system den kennen?
Dann solltest Du über ein anderes Logdateiformat nachdenken. CSV mit Semikolon* als Separator kann direkt mit Doppelklick in Excel geöffnet werden -- und das kann die Spaltenbreiten an den Inhalt anpassen. *) bei deutschsprachigen Systemen. Bei englischsprachigen Systemen muss stattdessen das namensgebende Komma verwendet werden.
Schreib's doch einfach so wie's kommt in die Logdatei und bau Dir ein paar Skripte (grep, awk, ...), die Dir die Ausgabe so formatieren, wie Du sie brauchts.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.