Log4J Verzeichnis der Log-Datei konfigurieren

grindelaner

Bekanntes Mitglied
Hallo,

in der Log4J.xml stellt man ein, wo die log-datei hingeschrieben werden soll....
[XML]
...
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="logVerzeichnis/log.log"/>
...
</appender>
...
[/XML]

Kann man diese Einstellung, also wo die Log-Datei hingeschrieben werden soll, auch woanders definieren?
Ich möchte gerne diese Einstellung in einer properties-Datei hinterlegen.

ist das Möglich?
 

KrokoDiehl

Top Contributor
Ja. Du kannst in deinem Programm über
Code:
PropertyConfigurator.configure()
(oder
Code:
configureAndWatch()
) Properties angeben die den (log4j-)Logger für dieses Programm konfigurieren. Die Properties sind dann auch ähnlich konfigurierbar wie die XML-Datei, haben aber natürlich ein anderes Format. Einfach mal nach dem Stichwort googlen.
 

FArt

Top Contributor
Kann man diese Einstellung, also wo die Log-Datei hingeschrieben werden soll, auch woanders definieren?
Ich möchte gerne diese Einstellung in einer properties-Datei hinterlegen.

ist das Möglich?

Möglich aber unpraktisch. Am sinnvollsten ist es, die Logdateien werden relativ sinnvoll abgelegt, somit ganz ohne zusätzliche Konfiguration.
Wenn es nicht relativ sein soll, dann würde ich z.B. über symbolische Links arbeiten.
Auf jeden Fall ist es nervig, wenn man sich erst mal die Logdateien suchen muss, weil nicht einfach ersichtlich ist, wo diese liegen. Außerdem kann es viel leichter zu Problemen mit Berechtigungen kommen.
 

grindelaner

Bekanntes Mitglied
Vielen Dank für die Hilfe mit PropertyConfigurator!

Ich habe das nun so gelöst, dass bevor Log4J initialisiert wird in die System.properties() eine neue Property hineingeschrieben wird. Diese kann ich dann in der log4j.xml verwenden :applaus:
 

FArt

Top Contributor
Vielen Dank für die Hilfe mit PropertyConfigurator!

Ich habe das nun so gelöst, dass bevor Log4J initialisiert wird in die System.properties() eine neue Property hineingeschrieben wird. Diese kann ich dann in der log4j.xml verwenden :applaus:

Setzt du das Property im Programmcode? Dann hast du u.U. bald mit Zitronen gehandelt. Wenn ein Logger static in einer Klasse definiert ist wird log4j genau in dem Moment initialisiert, in dem dieser Logger instanziiert wird, also wenn die Klasse geladen wird. Das kann sein, bevor das Property programmatisch gesetzt ist.
 

grindelaner

Bekanntes Mitglied
Was meinst du damit?

Ist es nicht so, dass bevor ich das erste Mal den Logger aufrufe ich genügend Zeit habe die System.Properies zu setzen?

...Wenn ein Logger static in einer Klasse definiert ist wird log4j genau in dem Moment initialisiert, in dem dieser Logger instanziiert wird, also wenn die Klasse geladen wird...

Du meinst also Log4J kann eventuell schon beim Hochfahren der Java-VM initialisiert werden, weil der Logger static ist...? Ich dachte die Klasse wird erst initialisiert, sobald sie das erste Mal angesprochen wird...

Das bedeutet also, dass das nun auf meinem Rechner funktioniert ist Glück und es könnte sein, dass es auf einem anderen Rechner nicht funktioniert?
 

FArt

Top Contributor
Nein, ganz so ist es nicht.

Es kann sein, dass dieser Trick irgendwann in der Zukunft nicht mehr funktioniert. Man muss also in Zukunft bei der Weiterentwicklung bzw. Wartung immer daran denken, dass dies wichtig ist.
Je nachdem ob z.B. eine Fremdlibrary auch log4j verwendet und u.U. vor dir das erste mal einen Logger verwendet.
Relativ sicher könnte es sein, wenn du möglichst früh (z.B. statischer Initializer der Main-Klasse) explizit die Initialisierung vornimmst und das Property setzt.
 

grindelaner

Bekanntes Mitglied
Dank dir. Das muss ich mir dann noch einmal genauer anschauen.

Als Alternative gäbe es statt log4j.xml eine log4j.properties zu verwenden... oder kann man auch eine Mischung von beiden verwenden, wobei die Datei log4j.properties nicht zwingend so heißen muss?
 

FArt

Top Contributor
Weder die XML Datei, noch die Properties-Datei muss so heißen. Den Namen und den Ort kann über ein Sytemproperty setzen. Die Propertiesdatei ist der "legacy" Modus, die alter Variante, wie man log4j konfigurieren konnte.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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 Grundsätzliches zu log4j Allgemeine Java-Themen 8
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
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
M Rat gesucht: Logging (log4J oder java.util.logging oder .) Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben