Kann man System.out in eine Datei speichern? ähnlich wie log

Status
Nicht offen für weitere Antworten.

kage0002

Mitglied
Hallo!

Ich würde gerne wissen ob es in Java eine Möglichkeit gibt den Output den man zum Beispiel mit dem Befehl System.out.println("Hallo Java"); in einer Datei speichern kann!
Ich würde gerne beim starten meine Jar-Datei die Konsolenausgabe angucken.

Danke!


lg Katie
 

The_S

Top Contributor
Ja, du kannst einfach den OutputStream (System.out) umleiten. Aber wenn du die sysouts eines Jars ansehen möchtest, dann starte das Jar doch einfach via

Code:
java -jar DeinJar.jar

über die Konsole!
 

Rock Lobster

Bekanntes Mitglied
Oder Du baust Dir kurz 'ne statische Logger-Klasse, mit einer log(String)-Funktion, die den String einfach direkt auf der Console ausgibt UND in eine Datei speichert. Dann kannst Du das auch immer wieder ein- und ausschalten, je nachdem, wie Du willst. Kannst das natürlich dann auch über Parameter lösen.
 

Rock Lobster

Bekanntes Mitglied
Naja im einfachsten Fall sowas:

Code:
public class Logger
{
   private static FileOutputStream file = null;

   public static void log(String str)
   {
      System.out.println(str);

      if (file != null)
         file.write(str.getBytes());
   }

   public static void log(Object o)
   {
      log(o.toString());
   }

   public static void setFileOutput(FileOutputStream f)
   {
      file = f;
   }
}

Das ist jetzt ungetestet, müßte aber funzen. Im Prinzip kannst Du auch den FileOutputStream direkt initialisieren, ohne ihn erst zu übergeben (also daß er beim ersten Log-Versuch einfach einen öffnen in 'nem bestimmten Verzeichnis oder sowas).

Der Vorteil ist, daß Du von nun an immer das hier benutzt:
Code:
Logger.log("Gib das hier mal aus...");

Somit hast Du eine einzige zentrale Log-Funktion. Diese kannst Du immer beliebig anpassen, z.B. kannst Du später auch Netzwerk-Funktionalitäten hinzufügen, sodaß Dein Logger über einen Socket die Ausgaben an einen anderen Rechner schickt und Du z.B. mit einem Laptop die Log-Ausgaben mitverfolgen kannst. Der Phantasie sind keine Grenzen gesetzt ;)

Es sei aber auch erwähnt, daß es berreits fertige Logger gibt, die oftmals sehr viele coole Sachen bieten. Zum Beispiel verschiedene Loglevel (Info, Warning, Error, usw), und Du kannst dann jederzeit einstellen, welche Levels Dich z.B. überhaupt nicht interessieren, und das wird dann auch nicht mehr ausgegeben. Natürlich ist es auch kein Problem, sich sowas selbst zu basteln (am besten zusätzlich zur log()-Funktion einfach eine info()-, error()-Funktion usw. bauen). Aber falls Du dazu keine Lust hast, dann sieh Dich mal nach fertigen Loggern um :)
 

Rock Lobster

Bekanntes Mitglied
Ach ja... ein weiterer Vorteil ist auch, daß Du die Ausgaben formatieren kannst. Beispielsweise kannst Du durch Deine eigene Log-Funktion bestimmen, wie viele \n angefügt werden sollen, oder daß immer vorne der Name der aufrufenden Klasse dransteht, z.B. so:

Code:
public static void log(String str, Object invoker)
{
   str = invoker.getClass().getName() + ">    " + str + "\n";
   System.out.println(str);

   // und noch der file-output eben...
}

Du siehst, Du hast eine Fülle an Möglichkeiten, und mußt es immer nur an einer einzigen Stelle ändern, weil jede Ausgabe nur noch über Deine Logger-Klasse erfolgen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Wie kann ich auf einem System prüfen, ob eine lib verfügbar ist? Allgemeine Java-Themen 2
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
B Lottospielen mit System, Versuch 2, noch umständlicher als vorher Allgemeine Java-Themen 1
J Frage zu System.getproperties. Allgemeine Java-Themen 60
sascha-sphw Erste Schritte Unit und Integration-Tests im Java Modul System Allgemeine Java-Themen 10
F Frage zu System.in Allgemeine Java-Themen 3
E System property setzten Allgemeine Java-Themen 8
Kirby.exe Movement System für Spiel Allgemeine Java-Themen 13
O Beziehung System.exit(x) <>Errorlevel Allgemeine Java-Themen 2
B System.out Ausgabe auf jtextarea Fehlersuche Allgemeine Java-Themen 8
F System Tray Menubutton ActionListener Allgemeine Java-Themen 5
H Im Tiled-Map-System ein Item anklicken Allgemeine Java-Themen 0
S Java Plugin System (ohne OSGI) Allgemeine Java-Themen 10
D System.arraycopy verhält sich seltsam Allgemeine Java-Themen 1
C Login System Allgemeine Java-Themen 19
A BufferedReader ohne System.in Allgemeine Java-Themen 9
VfL_Freak JDK installieren System-Property "user.dir" Allgemeine Java-Themen 6
J System.arraycopy ergibt anderes Resultat als for-loop Allgemeine Java-Themen 4
D Java System.out::println Allgemeine Java-Themen 1
D Methoden Java Applikation Die System Auslastung optimieren ? Allgemeine Java-Themen 7
S Ist Java ein geschlossenes System? Allgemeine Java-Themen 2
L Erste Schritte Suche Java Wiki System? Allgemeine Java-Themen 5
chuxXo System/JLayer Volume ändern Allgemeine Java-Themen 0
Neumi5694 System.out und System.err umleiten - NICHT im Quelltext Allgemeine Java-Themen 4
X System.out/err(Die Console) in JTextArea ausgeben Allgemeine Java-Themen 2
S Best Practice System.arrayCopy verändert Ziel-Array Allgemeine Java-Themen 2
A Methoden Der Sinn von system.out.print(); Allgemeine Java-Themen 9
A System freezes when trying to run external command from Java with wait for Allgemeine Java-Themen 3
A Java | Login-System Allgemeine Java-Themen 3
C System.out.print("") Compiler Fehler Allgemeine Java-Themen 2
Joew0815 Best Practice Wie am besten Plugin-System erstellen? Allgemeine Java-Themen 12
C System.in erhält Input von Tastatur. wo wird das festgelegt? Allgemeine Java-Themen 4
F Benachrichtigungs-System Webapp Java Servlet Allgemeine Java-Themen 10
M collection persistence system Allgemeine Java-Themen 4
V System.out.println an jeder Stelle im Projekt löschen Allgemeine Java-Themen 4
D System.out's in String speichern. Allgemeine Java-Themen 2
H Interpreter-Fehler ArrayIndexOutOfBoundsException bei System.arraycopy() Allgemeine Java-Themen 3
M System herausfinden Allgemeine Java-Themen 6
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
G java.exe in System 32. Hilfe!!! Allgemeine Java-Themen 8
R Methoden Tag System Problem Allgemeine Java-Themen 3
J System.out im GUI anzeigen Allgemeine Java-Themen 3
N System.exit(0/1) Allgemeine Java-Themen 3
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
D System.LoadLibrary(..) - Programm stürzt ab Allgemeine Java-Themen 2
U Classpath DLLs mittels System.load() laden: Allgemeine Java-Themen 6
D Listener auf System.out.err / System.out.println Allgemeine Java-Themen 5
G Input/Output System.in "umbiegen" für junit-Test Allgemeine Java-Themen 4
Kr0e User management system Allgemeine Java-Themen 2
S Java Programm -System Neustart überleben? Allgemeine Java-Themen 3
Rudolf Wann System.exit und wann dispose? Allgemeine Java-Themen 9
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
K Objekt-Austausch zwischen zwei Programmen über System-Clipboard Allgemeine Java-Themen 5
agent47 Plugin System Verständnisfrage Allgemeine Java-Themen 6
M Wie externe System-Ressourcen zwangsweise freigeben Allgemeine Java-Themen 2
E Durch System.in.read() blockierten Thread stoppen Allgemeine Java-Themen 10
P System.out im Eclipse plugin Allgemeine Java-Themen 4
C File System Watcher Allgemeine Java-Themen 2
S Verhalten von System.getenv() in Ubuntu / Linux Allgemeine Java-Themen 12
A Problem mit System.getProperty(...) Allgemeine Java-Themen 5
D System.loadlibrary funktioniert nicht Allgemeine Java-Themen 6
H Event ähnliches System Allgemeine Java-Themen 20
Dissi Gammawerte des Grafiktreibers / System ändern? Allgemeine Java-Themen 3
M Plugin-System Allgemeine Java-Themen 4
A NullPointer bei System.getProperty("file.seperator") Allgemeine Java-Themen 4
R System.out oder System.err? Allgemeine Java-Themen 10
M Wie kann ich alle System.out Strings in ein log window umleiten? Allgemeine Java-Themen 6
K System.exec() Programm mit mehreren Parametern Allgemeine Java-Themen 8
G unerklärliches System.out Allgemeine Java-Themen 3
M System.setProperty("javax.net.ssl.trustStore", "mykey.pkx"); Allgemeine Java-Themen 1
T System Preferences + LInux (Ubuntu) Allgemeine Java-Themen 8
G OutputStream to System.out Allgemeine Java-Themen 35
J Wo werden die System properties gespeichert Allgemeine Java-Themen 12
C JSR295 in Produktiven System zu empfehlen? Allgemeine Java-Themen 3
B System CPU Zeit / Last auslesen Allgemeine Java-Themen 2
G Bringt es etwas System.gc() nach großen Aufgaben aufzurufen? Allgemeine Java-Themen 2
T Feststellen ob System-Konsole verfügbar Allgemeine Java-Themen 2
L remote debugging of a multi threaded system Allgemeine Java-Themen 2
F Probleme mit eigenem Plugin-System Allgemeine Java-Themen 3
L System.exit Allgemeine Java-Themen 3
G System.out und String machen was anderes Allgemeine Java-Themen 5
G System.out im window h.inein bringen? Allgemeine Java-Themen 8
A System.in pipen Allgemeine Java-Themen 3
P System.getProperty zu Classloader Allgemeine Java-Themen 21
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
E System.out umleiten Allgemeine Java-Themen 2
S system.out und system.err einer Methode in Datei schreiben. Allgemeine Java-Themen 7
S System Informationen auslesen. Allgemeine Java-Themen 3
N Thread und System.out.print() Allgemeine Java-Themen 2
B Native DLL zweimal laden: System.load(sPath); Allgemeine Java-Themen 5
P System.getProperty("user.dir") Allgemeine Java-Themen 10
K Abfrage ob JRE oder JDK auf System installiert ist. Allgemeine Java-Themen 12
B serlvet system.out ausgabe Allgemeine Java-Themen 4
N Plugin-System: Klassen über String laden Allgemeine Java-Themen 3
O System.nanoTime() einheitlichen Wert auf mehreren Rechnern? Allgemeine Java-Themen 9
T System-Monitoring in Echtzeit Allgemeine Java-Themen 2
E System.out.println Allgemeine Java-Themen 5
G Umrechnen von grossen Zahlen ins Hex-System Allgemeine Java-Themen 3
G System.out.println(is.getClass().getName()); Allgemeine Java-Themen 15

Ähnliche Java Themen

Neue Themen


Oben