Grundsätzliches zu log4j

C

Camino

Gast
Hallo,

ich bin gerade dabei, in meiner Swing-Anwendung log4j einzubauen, damit ich in einer Logdatei Infos und Fehler mitloggen kann, vor allem, wenn andere User die Anwendung getestet haben, damit ich dann später sehen kann, ob Fehler auftraten.

Da ich mich erst seit Kurzem mit log4j beschäftige, sind mir einige Sachen noch unklar:

1.) In meiner Properties-Datei mit den Einstellungen für log4j steht
Code:
log4j.rootLogger = DEBUG, FILE
. Was bedeutet dieser rootLogger? Was ist der Unterschied zu dem Logger, den ich in jeder zu loggenden Klasse so einbinde:
Code:
private static final Logger logger = Logger.getLogger( Klassenname.class );
?

2.) Ich möchte gerne alle Fehlermeldungen in die Log-Datei reingeschrieben haben. Soweit ich das bisher gesehen habe, muss man dies aber dann mit
Code:
logger.error(...)
in den Exceptions in der Klasse anlegen. Bei anderen (unbehandelten) Exceptions, die normalerweise auf der Konsole ausgegeben werden (wie z.B. NullPointerException) gibt es diese Möglichkeit ja nicht. Jetzt hatte ich irgendwo einen Lösungsansatz gelesen, System.out und System.err in die Log-Datei umzuleiten. Bin mir aber nicht sicher, ob dies der richtige Ansatz ist. Gibt es da eine bessere Möglichkeit? Oder wie macht ihr das?

3.) Sollte dann in der Anwendung grundsätzlich auf System.out.println() verzichtet werden und alles über log4j laufen?

4.) Macht es Sinn, verschiedene Log-Dateien anzulegen? Eine für die Infos und eine für die Errors? Wenn ja, wie geht das? Muss ich bestimmt in der Properties-Datei angegeben...
 

musiKk

Top Contributor
1.) In meiner Properties-Datei mit den Einstellungen für log4j steht
Code:
log4j.rootLogger = DEBUG, FILE
. Was bedeutet dieser rootLogger? Was ist der Unterschied zu dem Logger, den ich in jeder zu loggenden Klasse so einbinde:
Code:
private static final Logger logger = Logger.getLogger( Klassenname.class );
?

Die Logger werden ja hierarchisch angelegt. Der [c]rootLogger[/c] ist einfach nur der in der Hierarchie am höchsten definierte Logger. Ansonsten müsste man bei jedem Logger z. B. das Log-Level angeben.

3.) Sollte dann in der Anwendung grundsätzlich auf System.out.println() verzichtet werden und alles über log4j laufen?

Ja, das ist sehr sinnvoll. Einen Logger kann man hinterher immer noch auf System.out lenken. Umgekehrt nicht.

4.) Macht es Sinn, verschiedene Log-Dateien anzulegen? Eine für die Infos und eine für die Errors? Wenn ja, wie geht das? Muss ich bestimmt in der Properties-Datei angegeben...

Würde ich nicht machen. Das macht es aufwändiger, Nachrichten aus verschiedenen Leveln miteinander zu korrelieren. Falls man doch filtern möchte, gibt es ja Tools wie grep oder Chainsaw.

Zu Swing kann ich leider nichts sagen, da weiß vielleicht jemand anders etwas.
 
C

Camino

Gast
Danke für die Infos. Werde mir das mit dem Logging erst mal noch weiter anschauen müssen, bis das so richtig läuft...
 

AngryDeveloper

Bekanntes Mitglied
2.) Du kannst einen UncaughtExceptionHandler nutzen um auf nicht gefangene Exceptions noch zu reagieren. An dieser stelle kannst du dann das Logging vollführen oder evtl. je nach Exception auch eine Meldung an den Benutzer ausgeben.
 
M

maki

Gast
3. Ja, kein Sysout
4. Kommt darauf an. In der Praxis ist es so, dass sich die User meist nicht für INFO, WARN, etc. pp. interessieren, höchstens (wenn überhaupt) für ERROR.

Wenn du mal mit log4j zurechtkommst kannst du dir ja mal logback + SLF4J ansehen, der Nachfolger von log4j.
 
C

Camino

Gast
3. Ja, kein Sysout
OK, werde ich dann umstellen.
4. Kommt darauf an. In der Praxis ist es so, dass sich die User meist nicht für INFO, WARN, etc. pp. interessieren, höchstens (wenn überhaupt) für ERROR.
Ich bin gerade noch in der Entwicklung, deshalb sind für mich erst mal die Infos und Fehlermeldungen wichtig. Vielleicht sollte ich ja einfach erstmal alles ausgeben lassen.

Wenn du mal mit log4j zurechtkommst kannst du dir ja mal logback + SLF4J ansehen, der Nachfolger von log4j.
Ja, ich werde mich erst mal ein bsischen weiter mit log4j beschäftigen, um das mal richtig zu verstehen und anwenden zu können. Hab damit eigentlich jetzt erst angefangen.

Danke für die Tipps...
 
M

maki

Gast
Ich bin gerade noch in der Entwicklung, deshalb sind für mich erst mal die Infos und Fehlermeldungen wichtig. Vielleicht sollte ich ja einfach erstmal alles ausgeben lassen.
Richtig, und DEBUG ist bei der Entwicklung gar nicht so selten, solange es nicht ständig an ist und Entwickler deswegen die Gigabytes an Logausgaben ignorieren.

Lässt sich zum Glück recht einfach steuern ;)
 
C

Camino

Gast
Ja, ich hab mir jetzt mal die wichtigsten Infos zusammengestellt (Log-Level, Appender, Layouts...) und werde damit einfach mal ein bisschen herumexperimentieren.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Grundsätzliches zu Java ? Allgemeine Java-Themen 10
M log4j Problem mit jlink Allgemeine Java-Themen 19
T Log4j integrieren, wie? Allgemeine Java-Themen 7
T Logging mit org.apache.logging.log4j Allgemeine Java-Themen 1
M Schutz vor Log4J Allgemeine Java-Themen 2
W Sicherheitslücke in Log4j Allgemeine Java-Themen 66
8u3631984 Generelle Log4j.xml für alle Module Allgemeine Java-Themen 5
MiMa mit Log4j einzeln Protokollieren Allgemeine Java-Themen 7
A JWS application - log4j wie configurieren Allgemeine Java-Themen 1
A Log4j configurieren Allgemeine Java-Themen 1
L Applet Wo loggt log4j bei Applets Allgemeine Java-Themen 0
T Log4J - Deaktivierung für einzelne Klassen Allgemeine Java-Themen 7
D Log4J RollingFileAppender rolliert nicht Allgemeine Java-Themen 3
MiMa Log4j in Dateien mit eigenem Namen schreiben Allgemeine Java-Themen 3
AssELAss Log4j Logging Ausgabe für jede Klasse in seperates File Allgemeine Java-Themen 2
O log4j - Verständnisfrage Allgemeine Java-Themen 1
O [log4J] Unterschied SocketServer <-> SimpleSocketServer Allgemeine Java-Themen 0
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
T [log4j] Wie nutzt man log4j.properties? Allgemeine Java-Themen 7
O log4j, Problem bei Ausgabe null-Wert Allgemeine Java-Themen 0
O log4j - eigenes Log für einzelne Klasse Allgemeine Java-Themen 5
J log4j ohne propertiedatei Allgemeine Java-Themen 4
H [Logback || log4j] Wie richtig loggen / Log Instanzen verwalten Allgemeine Java-Themen 2
A Threads Log4J Logger wird "überschrieben" Allgemeine Java-Themen 3
N Log4J PatternLayout Allgemeine Java-Themen 2
S Frage zu Format Modifiers in Log4j Allgemeine Java-Themen 11
S log4j, root logger logt nur FATAL? Allgemeine Java-Themen 9
P Wie bei log4j den Dateipfad der Logdatei zur Laufzeit ändern? Allgemeine Java-Themen 3
C Log4J mit 2 Appender Allgemeine Java-Themen 4
reibi log4j - Bestes Konzept Allgemeine Java-Themen 10
F System.out.println mit log4j ersetzen Allgemeine Java-Themen 10
F Log4J - Detaillierte Logeinträge Allgemeine Java-Themen 2
F log4j DailyRollingFileAppender Allgemeine Java-Themen 2
T Wahrscheinlich Problem mit log4j.properties Allgemeine Java-Themen 19
B Log4J und Categories Allgemeine Java-Themen 4
P Log4J - logt nicht Allgemeine Java-Themen 5
L log4j layout Allgemeine Java-Themen 3
S Log4j und SLF4J - Laufzeitänderungen Allgemeine Java-Themen 11
E Eclipse Axis, Jena, HTTPClient - log4j Meldungen deaktivieren? Allgemeine Java-Themen 6
ruutaiokwu log4j appender in log4j.xml in java referenzieren... Allgemeine Java-Themen 6
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
ruutaiokwu System.out auf files umlenken in log4j.xml Allgemeine Java-Themen 4
H log4j & taskname Allgemeine Java-Themen 3
C log4j.properties wird nicht verwendet?? Allgemeine Java-Themen 3
S log4j, Datum in Fileappendern formatieren Allgemeine Java-Themen 4
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
K log4j-Warnung mit Quartz Allgemeine Java-Themen 3
G log4j package filter Allgemeine Java-Themen 10
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
S log4j - doppeltes Logging Allgemeine Java-Themen 4
R log4j - Ausgabe der Logs Allgemeine Java-Themen 3
S log4j Logging über mehrere Klassen Allgemeine Java-Themen 13
MQue log4j mit hibernate Allgemeine Java-Themen 3
G Log4J - Logs älter als 3 Tage löschen Allgemeine Java-Themen 5
S log4j.dtd nicht in jar gefunden Allgemeine Java-Themen 7
H log4j - täglichen DailyRollingFileAppender Allgemeine Java-Themen 2
H Mit Log4j erzeugte Datei einlesen Allgemeine Java-Themen 2
hdi log4j in eine Datei Allgemeine Java-Themen 21
S Log4J DailyRollingFileAppender Allgemeine Java-Themen 4
M Log4J funktioniert nicht unter anderem Benutzer Allgemeine Java-Themen 5
B Log4j --- Welchen Appender, wie konfigurieren Allgemeine Java-Themen 3
F Logger in mehrere Dateien mit log4J Allgemeine Java-Themen 4
T Log4J: Bei Programmstart immer eine neue LogDatei erzeugen Allgemeine Java-Themen 9
ARadauer log4j DailyRollingFileAppender Allgemeine Java-Themen 4
B log4j löscht meine Logdateien Allgemeine Java-Themen 2
V Feinheitsfragen zu log4j Allgemeine Java-Themen 21
R log4j Allgemeine Java-Themen 5
DEvent log4j, commons logging, log4j.properties and co Allgemeine Java-Themen 12
K log4j Anzeigeformat Allgemeine Java-Themen 2
O Konkurrierender Zugriff auf Log-Datei mit Log4J Allgemeine Java-Themen 11
A log4j 1.3 und ändern der log Konfiguration zur Laufzeit Allgemeine Java-Themen 4
J Alte Log Files löschen mit log4j Allgemeine Java-Themen 3
U Log4j - gleichzeitige geöffnete File handles Allgemeine Java-Themen 2
P log4j Allgemeine Java-Themen 21
P log4j Allgemeine Java-Themen 9
B log4j FileAppender Dateizugriff Allgemeine Java-Themen 7
G log4j Allgemeine Java-Themen 13
J Log4j / commons-logging Allgemeine Java-Themen 3
V log4j Problem . Allgemeine Java-Themen 8
D Log4j-HTMLLayout Allgemeine Java-Themen 2
G Log4j - Log-File Allgemeine Java-Themen 6
Q [log4j] nur ein Mal konfigurieren Allgemeine Java-Themen 2
Y log4J XML Konfiguration Allgemeine Java-Themen 8
K Logging mit Log4j Allgemeine Java-Themen 2
P log4j: Übersicht der Properties Allgemeine Java-Themen 5
G eigener logger mittels classe (dynamische logfilename) log4j Allgemeine Java-Themen 15
K log4j - eigene Info-Ausgaben Allgemeine Java-Themen 5
K log4j - Fehlermeldung Allgemeine Java-Themen 2
J stackTrace mit log4j loggen Allgemeine Java-Themen 9
F log4j XML-Syntax Allgemeine Java-Themen 4
F log4j loggen in mehrere Dateien Allgemeine Java-Themen 4
S Logging mit log4j Allgemeine Java-Themen 17
S Log4J mit 2 Appender, einer soll nur INFO loggen Allgemeine Java-Themen 3
Q Ant und org.apache.log4j.xml.DOMConfigurator Problem Allgemeine Java-Themen 2
S log4j Allgemeine Java-Themen 2
V log4j.properties wird in der jar Datei nicht gefunden? Allgemeine Java-Themen 2
F [Log4J] Logdatei mit einem schlag über 200MB! Allgemeine Java-Themen 4
M Log4J - Protokollierung auf die GUI zaubern! Allgemeine Java-Themen 11
S log4j Protokoll in XML Allgemeine Java-Themen 11
B Wohin mit log4j.properties Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben