Diverse Fragen zum Fehlerlogging

krx

Mitglied
Hallo! Ich möchte in meinem Programm einen Logger benutzen und habe da ein paar Fragen.

1. Bei Fehlern soll zusätzlich eine E-Mail versandt werden. Nun gibt es ja Logger, die auch diese Funktion beinhalten. Allerdings soll mein Programm auch in einem fachlichen Kontext E-Mails versenden und dafür wird es schon einen Mailer geben. Nun weiß ich nicht recht, ob ich dann lieber einen eigenen kleinen Logger schreiben soll, der bei Bedarf den sowieso vorhandenen Mailer nutzt, oder ob ich da wirklich eine Trennung machen sollte.

2. Wie kann ich es erreichen, dass auch Fehler protokolliert werden, die ich versehentlich nicht in meinem Programm berücksichtigt habe? Selbst, wenn diese zum Programmabsturz führen. Sowas wie z.B. unbehandelte NullPointerExceptions. Wahrscheinlich geht das gar nicht mit dem Programm selbst, weil es ja dann eben schon abstürzt, oder? Was kann ich da sonst machen?

3. Wenn ich einen eigenen kleinen Logger baue, wie komme ich an die Information, aus welcher Klasse heraus ein Log-Eintrag geschrieben werden soll? Das will man ja nicht jedes mal übergeben müssen. Und im Kontext von 2. müsste man ja auch noch an die automatische Fehlermeldung mit Codezeile usw. kommen.

Danke
 

Timothy Truckle

Top Contributor
Nun weiß ich nicht recht, ob ich dann lieber einen eigenen kleinen Logger schreiben soll, der bei Bedarf den sowieso vorhandenen Mailer nutzt, oder ob ich da wirklich eine Trennung machen sollte.
Diese Entscheidung musst Du ganz allein treffen. Den entstehenden Mails ist es nämlich egal, wer sie generiert hat.
Let me google that for you

Wie kann ich es erreichen, dass auch Fehler protokolliert werden, die ich versehentlich nicht in meinem Programm berücksichtigt habe?
Wenn Dein
Code:
main
so aussieht:
Java:
public static void main(String[] args) {
  try {

   } catch (Exception ex) {
     Logger.getLogger("DeineMailSendendeLoggerDefinition").log(Level.ERROR,ex.getMessage(),ex);
   }
}
kommen alle unbehandelten Exeptions hier vorbei und werden geloggt. Ausnahme ist OutOfMemory, weil das keine Exception, sondern ein Error ist....

Genau so musst Du es dann auch in jeder
Code:
run
-Methode Deiner Threads machen. Das Zauberwort heißt hier sei konsequent.

Wenn ich einen eigenen kleinen Logger baue, wie komme ich an die Information, aus welcher Klasse heraus ein Log-Eintrag geschrieben werden soll?
Das wissen so ziemlich alle Logger selbst, und die Info, wo die Exception aufgetreten ist steht in der Exception selbst (ist ja nicht C++).

bye
TT
 
N

nillehammer

Gast
1. Bei Fehlern soll zusätzlich eine E-Mail versandt werden. Nun gibt es ja Logger, die auch diese Funktion beinhalten. Allerdings soll mein Programm auch in einem fachlichen Kontext E-Mails versenden und dafür wird es schon einen Mailer geben. Nun weiß ich nicht recht, ob ich dann lieber einen eigenen kleinen Logger schreiben soll, der bei Bedarf den sowieso vorhandenen Mailer nutzt, oder ob ich da wirklich eine Trennung machen sollte.
Ich persönlich finde das Logging in Emails ja eher fragwürdig. Ich verfolge eher die Philosphie, Einzelereignisse zu Loggen und dann evtl. auf Basis einer Analyse der Einzelereignisse Mails zu generieren. Aber nicht direkt aus einem Programm. Aber egal, wenn du es machen willst, dann nutze auf jeden Fall die Funktionalität Deines Logging-Frameworks und keinen fachlichen Mailer. Das sind zwei ganz unterschiedliche Anforderungen/Zielgruppen/Dateninhalte. Deswegen gehört das meiner Meinung nach getrennt.
2. Wie kann ich es erreichen, dass auch Fehler protokolliert werden, die ich versehentlich nicht in meinem Programm berücksichtigt habe? Selbst, wenn diese zum Programmabsturz führen. Sowas wie z.B. unbehandelte NullPointerExceptions. Wahrscheinlich geht das gar nicht mit dem Programm selbst, weil es ja dann eben schon abstürzt, oder? Was kann ich da sonst machen?
Normalerweise wird sowas vom Container (z.B. Tomcat, JBOss) abgefanen, wenn Du dich in einer EE Umgebung bewegst. Vielfach bieten auch Frameworks einen globalen Exceptionhandler an. Wenn Du das alles nicht benutzt, musst Du entweder mit try-catch oder mit dem UncaughtExceptionHandler arbeiten.
3. Wenn ich einen eigenen kleinen Logger baue, wie komme ich an die Information, aus welcher Klasse heraus ein Log-Eintrag geschrieben werden soll? Das will man ja nicht jedes mal übergeben müssen. Und im Kontext von 2. müsste man ja auch noch an die automatische Fehlermeldung mit Codezeile usw. kommen.
Sämtliche Logging-Frameworks unterstützen das. Schreibe nichts eigenes sondern lerne, eines dieser Frameworks zu nutzen. Du wirst sehen, dass Du diese Informationen out of the Box erhälst und Dir keine Gedanken machen musst.
 

krx

Mitglied
Danke für eure Antworten.

Brauche auf jeden Fall einen Logger, der auch Mails versenden kann.
Ich versuche gerade, log4j zum Laufen zu bekommen. Eingebunden habe ich es schon (zumindest läuft das Programm auch nach Erstellung eines Loggers ohne Fehler), allerdings erhalte ich keinerlei Lebenszeichen vom Logger (wäre davon ausgegangen, dass per Default Konsolenausgaben erzeugt werden, wenn ich etwas logge). Meine .xml-Einstellungsdatei scheint auch nicht berücksichtigt zu werden. Die aktuelle Version (2) scheint auch recht neu zu sein, man findet im Web fast nur Beispiele, die mit der Vorgängerversion arbeiten. Tinylog war da intuitiver, aber hatte keine Mail-Funktion.

Gibt es eine Alternative zu Thread.UncaughtExceptionHandler? Benutze nämlich keine Threads, da ich das Programm überhaupt erstmal funktionsfähig bekommen wollte und ich mich mit Threads noch nicht beschäftigt habe.
 
N

nillehammer

Gast
Gibt es eine Alternative zu Thread.UncaughtExceptionHandler? Benutze nämlich keine Threads, da ich das Programm überhaupt erstmal funktionsfähig bekommen wollte und ich mich mit Threads noch nicht beschäftigt habe.
Doch, benutzt Du. Wenn nicht explizit neue Threads von Dir gestartet werden, so läuft Dein Programm in einem einzigen Thread. An den kommst du über
Code:
Thread.currentThread()
. Auf diesem musst du Deinen Handler setzen.
 

krx

Mitglied
Ok, danke.

Log4j läuft mittlerweile auf der Konsole. Allerdings bekomme ich leider keine Ausgabe mit Highlighting hin. Mein Pattern sieht wie folgt aus:
Code:
%highlight{%-10d{HH:mm:ss} %-8level %-60l %msg}%n
Die Anweisung, dass gehighlightet werden soll, wird auch verstanden, denke ich, da in der Konsole nach Einsetzen der Highlight-Anweisung um jeden Log-Eintrag nun zusätzliche Zeichen zu finden sind, die je nach Level unterschiedlich sind. Scheinbar werden diese aber auf der Konsole nicht umgesetzt (siehe angehängtes Bild). Weiß da wer einen Rat? Ich habe schon mit den Charsets rumgespielt (Ausgabe-Charset des Loggers, Charset der Konsole), diese identisch auf UTF-8, ISO 8859-1 und Cp1252 gestellt, ohne Erfolg. Arbeite in Eclipse.
 

Anhänge

  • Aufzeichnen.JPG
    Aufzeichnen.JPG
    16,7 KB · Aufrufe: 24
Zuletzt bearbeitet:
M

maki

Gast
Die Eclipse "Console" ist keine richtige Konsole, verhält sich anders als die Komandozeile, und bei der kommt es halt darauf an welche du verwendest.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Diverse Fragen vor Schulaufgabe ;) Java Basics - Anfänger-Themen 4
U Diverse Fragen (Internethandel erstellen) Java Basics - Anfänger-Themen 30
O diverse Fragen Java Basics - Anfänger-Themen 13
K Diverse Bugs in einem Snake Spiel Java Basics - Anfänger-Themen 4
J Diverse Frag zu Vererbung innerhalb von Java Java Basics - Anfänger-Themen 6
H Diverse Dinge: Unstabile Grafik, Druckt Grafik nicht,Tooltipp verschwindet hinter Grafik Java Basics - Anfänger-Themen 3
H Diverse Exceptions - Troubleshooting Java Basics - Anfänger-Themen 3
J diverse Begriff definieren Java Basics - Anfänger-Themen 6
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
H Fragen zu Wrapperklassen Java Basics - Anfänger-Themen 29
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
A Bei VierGewinnt fragen ob man gegen CPU oder Menschen spielen will. Java Basics - Anfänger-Themen 7
A Bei VierGewinnt vorher fragen, ob man gegen den Computer spielen möchte oder gegeneinander. Java Basics - Anfänger-Themen 1
A Bei VierGewinnt fragen, ob man gegen den Computer spielen möchte oder gegeneinander Java Basics - Anfänger-Themen 1
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
E Bäume/ allgemeine Fragen Java Basics - Anfänger-Themen 21
O Falsche Antworten zu Fragen Java Basics - Anfänger-Themen 4
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B fragen zu Aufbau eines UML-Klassendiagramm Java Basics - Anfänger-Themen 1
C 3 Fragen rund um Klassenattribute Java Basics - Anfänger-Themen 8
L Erste Schritte Log4J Fragen Java Basics - Anfänger-Themen 5
NeoLexx Fragen zu diversen Elementen der Javabibliothek Java Basics - Anfänger-Themen 5
D Budget Manager fragen zur Umsetzung Java Basics - Anfänger-Themen 9
N Fragen zur Datenspeicherung Java Basics - Anfänger-Themen 45
T Java Anfänger mit konkreten Fragen Java Basics - Anfänger-Themen 2
CT9288 Fragen zu Java Java Basics - Anfänger-Themen 16
W Fragen zu Generics Java Basics - Anfänger-Themen 14
T ObjectInput/OutputStream Fragen zur Funktionsweise Java Basics - Anfänger-Themen 3
J Fragen zu einer Methode Java Basics - Anfänger-Themen 3
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
Z Fragen zu Exception (Throws/throw) Java Basics - Anfänger-Themen 7
J Fragen zu Input/Output Java Basics - Anfänger-Themen 3
J Erste Schritte Oracle Tutorials zu Java 8 - Fragen dazu Java Basics - Anfänger-Themen 1
H Java Quereinsteiger Roadmap und Fragen Java Basics - Anfänger-Themen 29
H fragen Java Basics - Anfänger-Themen 15
M Samelsarium Grundlegender Fragen 2 Java Basics - Anfänger-Themen 9
M Sammelsarium an Grundlagen Grundlagen Fragen Java Basics - Anfänger-Themen 11
B Java ist / wird kostenpflichtig. Ein paar Fragen Java Basics - Anfänger-Themen 1
J Fragen zu synrchonized und kritischen Abschnitten Java Basics - Anfänger-Themen 5
S Fragen zu einem Rechentrainer Java Basics - Anfänger-Themen 2
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
J Wo kann man Fragen zu ireport stellen. Java Basics - Anfänger-Themen 0
M Fragen zum Anlegen und Benutzen von Listen Java Basics - Anfänger-Themen 9
G Ein paar Anfänger Fragen zu StdDraw Java Basics - Anfänger-Themen 4
D Fragen zur Klassen Java Basics - Anfänger-Themen 4
Aprendiendo Zwei Fragen und ein geerbtes "protected"-Attribut Java Basics - Anfänger-Themen 2
J Interface Fragen bezüglich "Sauberkeit" von Code Java Basics - Anfänger-Themen 5
D Objekte-Fragen Java Basics - Anfänger-Themen 1
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
K Zwei Fragen zu Graphics/Graphics2D Java Basics - Anfänger-Themen 5
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
Azazel Ein paar Fragen zu Methodenaufrufen(java.awt) Java Basics - Anfänger-Themen 2
S Erste Schritte Fragen zur For-Schleife Java Basics - Anfänger-Themen 9
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
GreenTeaYT Exception und zur OOP fragen? Java Basics - Anfänger-Themen 3
C Fragen zum Spigot Plugin (1.8) Java Basics - Anfänger-Themen 6
J Fragen zu Exceptions Java Basics - Anfänger-Themen 24
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
J Verschieden Fragen über Java Programmierung Java Basics - Anfänger-Themen 3
L Viele Fragen zu den Grundlagen Java Basics - Anfänger-Themen 5
B Fragen zu ZIP-File Java Basics - Anfänger-Themen 9
L fragen zu arrays Java Basics - Anfänger-Themen 8
L Fragen zu selbstgeschriebenem Programm Java Basics - Anfänger-Themen 5
M Fragen zum Auslesen von HTML Seiten Java Basics - Anfänger-Themen 5
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
K Erste Schritte Frage Antwort Spiel - Fragen zur Planung Java Basics - Anfänger-Themen 2
C Java Applet Fragen: Serialisierung, Excel import Java Basics - Anfänger-Themen 2
Anfänger2011 2 kleine Fragen zu ArrayListen Java Basics - Anfänger-Themen 5
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
A 2 kurze Anfänger fragen Java Basics - Anfänger-Themen 6
H grundlegende Fragen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
N Programm: Fragen beantworten Java Basics - Anfänger-Themen 6
C Anfänger Anfänger Fragen Java Basics - Anfänger-Themen 8
Z Compiler-Fehler LinkedList Fragen Java Basics - Anfänger-Themen 4
D Rekursion Allgemeine Fragen Java Basics - Anfänger-Themen 2
D [Fragen] zu Methoden Java Basics - Anfänger-Themen 2
S Fragen zur Implementierung eines Binärbaums Java Basics - Anfänger-Themen 3
T Ein paar Fragen zu OOP und Java. Java Basics - Anfänger-Themen 16
J Allgemeine Fragen zur GUI Java Basics - Anfänger-Themen 1
johnnydoe Erste Schritte Erster Blick - erste Fragen Java Basics - Anfänger-Themen 11
DStrohma Grundsätzliche Fragen zu Drag & Drop Java Basics - Anfänger-Themen 1
N Klassen fragen zur getter und setter methode Java Basics - Anfänger-Themen 11
S 3 Fragen, Verzeichnis, GridLayout psoitionieren, Werte für JSpinner Java Basics - Anfänger-Themen 2
T Fragen zu Set / Relationen verknüpfen Java Basics - Anfänger-Themen 4
S 2 Fragen Java Basics - Anfänger-Themen 4
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
N Java Fragen... Java Basics - Anfänger-Themen 10
F ExecutorService Fragen! Java Basics - Anfänger-Themen 2
O HashMap Fragen Java Basics - Anfänger-Themen 8
C Fragen zu Arrays Java Basics - Anfänger-Themen 19
T viele "kleine" Fragen... Java Basics - Anfänger-Themen 3
S Fragen zur Implementierung eines Adressbuches Java Basics - Anfänger-Themen 20
S Fragen zu Arrays Java Basics - Anfänger-Themen 6
N StringReader - Fragen Java Basics - Anfänger-Themen 8
C Einige Fragen zu Frames Java Basics - Anfänger-Themen 7
M Erste Schritte Allgemeine Fragen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben