2016-05-09 4 views
0

In Java möchte ich die stdout und stderr meines Prozesses abfangen. Ich möchte nicht verhindern, dass es irgendwann an die Konsole/das Standardziel gelangt, aber bei jeder neuen Zeile muss ich diese Zeile in meine eigene Protokolldatei kopieren (mit Formatierung und HTML-Formatierung). Der einzige Weg, wie ich das sehen kann, ist something like this - das könnte funktionieren, aber ich mache mir Sorgen um verschiedene Zeichensätze, möchte schließlich die Ausgabe auf die gleiche Weise wie zuvor formatieren anstatt sie zu unterdrücken, und ich muss es bei jedem Zeilenumbruch handhaben nicht wenn es sich anfühlt, als würde man spülen (sogar mit automatischer Spülung = wahr).Java intercept eigenen Prozess stdout und stderr Streams

Gibt es eine Bibliothek, die das erleichtert?

Antwort

0

aber ich muss diese Zeile bei jedem Zeilenumbruch in meine eigene Protokolldatei kopieren (mit Formatierung und HTML-Formatierung).

Warum betrachten Sie nicht das klassische Unix-Dienstprogramm tee? Eine Demo:

  1. tail -f source | tee tee.sink
  2. echo "foo" >> source - sollten Sie "foo" auch auf Ihrem Terminal
  3. cat tee.sink sollte foo Anzeige sehen.

Oder habe ich falsch verstanden, was Sie wollen?

+0

Ich muss dies innerhalb des Java-Prozesses tun. –

Verwandte Themen