Logging von Exceptions

bloodyrocky

Mitglied
Hi zusammen,

die Frage ist eher von konzeptioneller Natur als technischer. Es geht um das Loggen von Exceptions. Hier gibt es bekanntlich mehrere Wege die zum Ziel führen. Ich würde gerne die Exceptions in eine Datei schreiben, dazu könnte ich ein FileWriter nehmen, oder aber auch die Logger-Klasse oder, oder, oder. Ich habe einfach einmal die Logger-Klasse genommen, weil es mir am sinnvollsten erschien. Leider war das Ergebniss nicht so wie erwünscht. Die Bildschirmausgabe sah so aus:
Code:
10.06.2010 11:27:13 de.ergo_fit.cardea.test.TrainingPanel <init>
SCHWERWIEGEND: null
java.lang.Exception: Ich bin garnicht hier!
        at de.ergo_fit.cardea.test.TrainingPanel.<init>(TrainingPanel.java:59)
        at de.ergo_fit.cardea.test.PanelManager.loadPanel(PanelManager.java:33)
        at de.ergo_fit.cardea.test.StartPanel$1.actionPerformed(StartPanel.java:26)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        ...

Während die Ausgabe in der Datei ein XML-Format hat:
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE log SYSTEM "logger.dtd">
<log>
<record>
  <date>2010-06-09T17:50:41</date>
  <millis>1276098641672</millis>
  <sequence>0</sequence>
  <logger>de.ergo_fit.cardea.test.TrainingPanel</logger>
  <level>SEVERE</level>
  <class>de.ergo_fit.cardea.test.TrainingPanel</class>
  <method>&lt;init&gt;</method>
  <thread>10</thread>
  <exception>
    <message>java.lang.Exception: Ich bin garnicht hier!</message>
    <frame>
      <class>de.ergo_fit.cardea.test.TrainingPanel</class>
      <method>&lt;init&gt;</method>
      <line>59</line>
    </frame>

Zusätzlich wurde beim erneuten Programmstart nicht die Sequenz fortgesetzt, sondern ein neuer XML-Header geschrieben und dann erneut begonnen. Das gefällt mir nicht, ließe sich aber sicherlich durch formatieren der Logger-Ausgabe lösen. Ich glaube es war möglich die Ausgabe entsprechend anzupassen :bahnhof:

Nun zur eigentlichen Problematik. Ich möchte nichts weiter als eine Textdatei die wie folgt die Fehler loggt:
Code:
[2010/05/24 09:16:32] [Error] Klassenname: Fehlerbeschreibung

Sollte man soetwas durch formatieren des Loggers gestallten, oder doch eher durch simples Schreiben in ein Log mittels FileWriter? Was ist effizienter? Möchte jemand vielleicht Erfahrungen teilen :)
 

Der Müde Joe

Top Contributor
mit log4j:
Code:
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="%d{ISO8601} %-5p %c{1} - %m%n" />
		</layout>

>Ich würd einfach log4j benutzen...

noch besser slf4j mit log4j-Adapter
 

bloodyrocky

Mitglied
Hi,

erstmal danke! Ich habe mir mal kurz die Bespiele auf den Projektseiten angeschaut. Scheint ja so zu funktionieren wie die Logger-Klasse in Java selbst (von der Benutzung). Hier scheint aber alles zu sein was ich brauche.
 

Wortraum

Bekanntes Mitglied
Beim Java-Logger kann man angeben, ob man es „normal“ oder als XML formatiert haben möchte; ebenso kann man angeben, ob an eine Datei angehängt oder sie überschrieben werden soll. Das geht beispielsweise so:
Java:
private static final Logger logger = Logger.getLogger(…);
static {
    FileHandler logFile = new FileHandler("zeug.log");
    logFile.setFormatter(new SimpleFormatter());
    logger.addHandler(logfile);
}
Es gibt da sicherlich noch Ausnahmen abzufangen, aber welche, vermag ich aus dem Kopf nicht zu sagen.

Du kannst auch noch beliebige weitere Handler hinzufügen, beispielsweise noch einen, um ein XML-Log zu schreiben, einen für die Konsolenausgabe; oder einen für die leichten, einen für die schweren Fehler.

Das wollte ich nur noch loswerden, falls es hier Leute gibt, die wie ich nicht mögen, zusätzliche Bibliotheken zu verwenden. Für den normalen Hausgebrauch ist der Java-Logger sehr mächtig und komfortabel.
 

bloodyrocky

Mitglied
Hey Wortraum, danke für den Post! Finde es auch nicht so toll zusätzliche Bibliotheken einzubinden. Was mir nicht klar war, dass man so einfach Formatieren kann. Gut die Ausgabe entspricht nicht ganz dem was ich mir vorgestellt habe, aber genügt eigentlich auch, so dass ich den SimpleFormater nehmen werde. Jetzt muss ich mir nur noch überlegen was ich loggen muss. Wünsche schönes Wochenende!
 

Wortraum

Bekanntes Mitglied
Man kann sich auch einen eigenen Formatter schreiben, irgendwo fand ich dazu sogar gute Anleitungen. Allerdings nahm ich mir nie die Zeit, sondern gab mich mit dem SimpleFormatter zufrieden.
 

bloodyrocky

Mitglied
Der SimpleFormatter ist auch völlig ausreichend, das XML-Format in seiner "Reinform" war mir schlicht weg zu überladen. Ich denke mit dem SimpleFormatter habe ich alles was ich brauche, aber als noch recht unerfahrener Programmierer muss ich da jetzt erstmal meine Erfahrungen sammeln.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 Strukturiertes Logging : Jedes Feld in eine seperate Zeile - aber wie ? Allgemeine Java-Themen 2
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
MiMa Logging mit log4j2 in verschiedene Dateien? Allgemeine Java-Themen 22
S Input/Output Jave.utill.logging ohne Default-Locale also in Englisch Allgemeine Java-Themen 3
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M JVM: Client Software Logging und Profiling aktivieren Allgemeine Java-Themen 1
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
P Logging levels Allgemeine Java-Themen 2
X Logging Messages - mehr Details? Allgemeine Java-Themen 4
F Error Logging - best practices? Allgemeine Java-Themen 3
L util.logging Log Rotation Allgemeine Java-Themen 3
W Java Logging Problem Allgemeine Java-Themen 3
H java.util.logging Formatter Optionen setzen Allgemeine Java-Themen 2
D Logging XMLFormatter Allgemeine Java-Themen 3
B OOP java.util.logging.Logger: Wie kann ich mehre Klassen in ein Logfile schreiben lassen? Allgemeine Java-Themen 12
D Technologiefragen, logging, JMX Allgemeine Java-Themen 3
S Tomcat java.util.logging - keine Logs Allgemeine Java-Themen 12
J Logging mehrerer Methoden Allgemeine Java-Themen 21
S log4j - doppeltes Logging Allgemeine Java-Themen 4
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
P SLF4J Logging Level einstellen Allgemeine Java-Themen 2
DamienX Google Guice AOP + Logging Allgemeine Java-Themen 3
T CP Problem: Webstart + Logging properties file + eigener Handler Allgemeine Java-Themen 7
A java logging api scheint nicht thread save zu sein Allgemeine Java-Themen 22
T Java Logging API in Multi Threaded API Allgemeine Java-Themen 2
P fehlende Mehrfachvererbung logging.Handler impl. Observable Allgemeine Java-Themen 5
M Verbieten Applets die Nutzung von Commons Logging? Allgemeine Java-Themen 7
F Java logging Allgemeine Java-Themen 4
F Java logging Leerzeile als Standardeinstellung Allgemeine Java-Themen 4
S Java logging konfigurieren? Allgemeine Java-Themen 5
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
J Logging Allgemeine Java-Themen 10
J Log4j / commons-logging Allgemeine Java-Themen 3
K Logging mit Log4j Allgemeine Java-Themen 2
G Logging Allgemeine Java-Themen 4
S Logging mit log4j Allgemeine Java-Themen 17
S Logging Allgemeine Java-Themen 9
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5
T Logging Allgemeine Java-Themen 12
T Transaction Logging Allgemeine Java-Themen 2
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
W Exceptions behandeln Allgemeine Java-Themen 16
Kirby.exe Exceptions erklärt Allgemeine Java-Themen 5
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
J Exceptions Allgemeine Java-Themen 1
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
V Exceptions Allgemeine Java-Themen 2
G Exceptions mit jre 7u40 Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
E LookAndFeel Exceptions bei UIManager.setLookAndFeel Allgemeine Java-Themen 4
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
C Threads und Exceptions Allgemeine Java-Themen 7
B Webstart Exceptions Allgemeine Java-Themen 7
R Threads Exceptions von Threads abfangen im ThreadPool Allgemeine Java-Themen 5
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
G Internationalisierung von Exceptions Allgemeine Java-Themen 5
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
F Alle Exceptions abfangen Allgemeine Java-Themen 4
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
G Designfrage: Exceptions in Konstruktoren Allgemeine Java-Themen 7
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
M Verwendung von unchecked exceptions & bereits vorhandenen exceptions was priorisieren Allgemeine Java-Themen 3
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
H Exceptions und IO Allgemeine Java-Themen 17
B Exceptions? Allgemeine Java-Themen 4
D Throws Exceptions Allgemeine Java-Themen 14
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
V Exceptions als Fehlerbehandlung "missbrauchen"? Allgemeine Java-Themen 10
DEvent Wie behandelt man Exceptions in Iterator? Allgemeine Java-Themen 2
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
R Loading-Thread und Exceptions abfangen. Allgemeine Java-Themen 4
P Exceptions dokumentieren. Allgemeine Java-Themen 6
G Exceptions weiterwerfen Allgemeine Java-Themen 2
T Generics und Exceptions Allgemeine Java-Themen 6
P Exceptions throw Allgemeine Java-Themen 6
F Wann und wie Exceptions einsetzen? Allgemeine Java-Themen 13
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
T Frage zu Exceptions Allgemeine Java-Themen 3
G Java-Exceptions werden nicht ganz angezeigt. Wo ändern? Allgemeine Java-Themen 3
J Probleme mit Exceptions Allgemeine Java-Themen 11
R Exceptions mit aktuellen Programminformationen ausgeben? Allgemeine Java-Themen 2
märliprinz com.sap.dbtech.jdbc.exceptions.JDBCDriverException Allgemeine Java-Themen 2
G Alle Exceptions loggen Allgemeine Java-Themen 4
G Frage zu Exceptions Allgemeine Java-Themen 6
M err oder alle Exceptions eines Programms abfangen Allgemeine Java-Themen 4
G Exceptions ohne Zeilennummer (Unknown Source) Allgemeine Java-Themen 8
T Exceptions im statischem Klassencode Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben