log4j
log4j protokolliert die Anpassung
Suche…
Konfigurationsdatei
Aufbau
Die Log4j-Konfigurationsdatei kann eines der folgenden Formate haben:
- JSON
- YAML
- Eigenschaften (Textdatei)
- XML
Konfigurationserkennung
- Log4j überprüft die
log4j.configurationFileund versucht, falls vorhanden, die Konfiguration zu laden. - Wenn keine Systemeigenschaft festgelegt ist, sucht
log4j2-test.propertiesim Klassenpfad nachlog4j2-test.properties. - Wird keine solche Datei gefunden, sucht log4j im Klassenpfad nach
log4j2-test.yamloderlog4j2-test.yml. - Wird keine solche Datei gefunden, sucht log4j im Klassenpfad nach
log4j2-test.jsonoderlog4j2-test.jsn. - Wird keine solche Datei gefunden,
log4j2-test.xmlim Klassenpfad nachlog4j2-test.xml. - Wenn eine Testdatei nicht gefunden werden kann, sucht log4j nach
log4j2.propertiesim Klassenpfad. - Wenn eine Eigenschaftendatei nicht gefunden werden kann, sucht log4j im Klassenpfad nach
log4j2.yamloderlog4j2.yml. - Wenn keine YAML-Datei gefunden werden kann, sucht log4j im Klassenpfad nach
log4j2.jsonoderlog4j2.jsn. - Wenn keine JSON-Datei gefunden werden kann, versucht log4j,
log4j2.xmlim Klassenpfad zu finden. - Wenn keine Konfigurationsdatei gefunden wurde, wird die DefaultConfiguration verwendet. Dadurch wird die Protokollierungsausgabe an die Konsole gesendet.
XML-Konfiguration
XML-Beispiel
Die folgende Konfiguration konfiguriert zwei Appender (Protokollausgabe). Die ersten Protokolle werden in der Standardsystemausgabe (Konsole) und die anderen Protokolle in der Datei protokolliert. In diesem Beispiel kann der Speicherort der Datei statisch in der Konfiguration (Appender- file ) oder dynamisch über die Maven-Filterfunktion ( <Property name="APPENDER"> ) festgelegt werden. Die Protokolle in der Datei werden nach Tag gepackt. Das Conversion Pattern das Protokollzeilenformat wird als Variable festgelegt.
<?xml version="1.0" encoding="UTF-8"?>
<!-- 'status' sets log level for parsing configuration file itself -->
<Configuration status="INFO">
<Properties>
<!-- Sets variable PID, if it's not present in log4j context will take value as below: -->
<Property name="PID">????</Property>
<!-- Sets variable 'LOG_PATTERN', defining how log line will look like -->
<Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{%X{usr}}{green} %clr{---}{faint}%clr{[%15.15t]}{faint} %clr{%-40.40c{1.}:%l}{cyan} %clr{:}{faint} %m%n%wEx</Property>
<!-- LOG_DIR may be set by maven filtering feature: -->
<Property name="LOG_DIR">@logging.path@</Property>
<!-- APPENDER may be set by maven filtering feature, to set 'console' or 'file' appender: -->
<Property name="APPENDER">@logging.default.appender@</Property>
</Properties>
<Appenders>
<!-- Sets console output: -->
<Console name="console" target="SYSTEM_OUT">
<PatternLayout pattern="${LOG_PATTERN}"/>
</Console>
<!-- Sets output to file, and names it 'file' -->
<RollingRandomAccessFile append="true" fileName="${LOG_DIR}/log4j2.log"
filePattern = "${LOG_DIR}/log4j2.%d{yyyy-MM-dd}.nr%i.log.gz" name="file">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
</Policies>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<!-- Sets debug for Class 'com.example.package.Clazz', and attaches to file 'file' -->
<Logger name="com.example.package.Clazz" level="debug">
<AppenderRef ref="file"/>
</Logger>
<!-- Sets 'info' for package 'org.springframework' -->
<Logger name="org.springframework" level="info" />
<Root level="WARN">
<AppenderRef ref="${APPENDER}"/>
</Root>
</Loggers>
</Configuration>
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow