Wie der Titel verrät, möchte ich - temporär - alles, was in den System.out geschrieben wird in einem String ablegen.
Hintergrund:
Ich schreibe eine Grails Webapp und rufe eine externe Matlab-Methode (kann man sich als JNI Methode vorstellen) auf, die eine lange Berechnung durchführt. Zwischendurch möchte ich den Status (also wie weit die Methode fortgeschritten ist) ausgeben. Die einzige Möglichkeit sehe ich über System.out's, denn die Matlab outputs landen auch in der Konsole.
Es wäre also schön, wenn man für die Zeit, in der die Methode läuft, die Outputs in Java in eine Variable speichern kann.
__________
Was nicht funktioniert:
Ich habe versucht mit System.setOut() alles in einen eigenen PrintStream umzuleiten und nach der Matlab Methode mit System.setOut(originalerPrintStream) zu resetten.
Das geht zwar, wenn man reines Java zeug dazwischen macht, aber dazwischen die Mathlab Methode aufrufen geht nicht
__________
Notlösung
Den System.out in eine Datei loggen und dann dort den Status auslesen. Darauf habe ich aber keine Lust, schön wäre es echt, wenn man die Out's in eine Variable speichern kann.
Wie könnte man das machen? Geht das überhaupt? Weitere Notlösungen?
Hintergrund:
Ich schreibe eine Grails Webapp und rufe eine externe Matlab-Methode (kann man sich als JNI Methode vorstellen) auf, die eine lange Berechnung durchführt. Zwischendurch möchte ich den Status (also wie weit die Methode fortgeschritten ist) ausgeben. Die einzige Möglichkeit sehe ich über System.out's, denn die Matlab outputs landen auch in der Konsole.
Es wäre also schön, wenn man für die Zeit, in der die Methode läuft, die Outputs in Java in eine Variable speichern kann.
__________
Was nicht funktioniert:
Ich habe versucht mit System.setOut() alles in einen eigenen PrintStream umzuleiten und nach der Matlab Methode mit System.setOut(originalerPrintStream) zu resetten.
Das geht zwar, wenn man reines Java zeug dazwischen macht, aber dazwischen die Mathlab Methode aufrufen geht nicht
__________
Notlösung
Den System.out in eine Datei loggen und dann dort den Status auslesen. Darauf habe ich aber keine Lust, schön wäre es echt, wenn man die Out's in eine Variable speichern kann.
Wie könnte man das machen? Geht das überhaupt? Weitere Notlösungen?