Suche…


Konfigurationsdatei

Aufbau

Die Log4j-Konfigurationsdatei kann eines der folgenden Formate haben:

  • JSON
  • YAML
  • Eigenschaften (Textdatei)
  • XML

Konfigurationserkennung

  1. Log4j überprüft die log4j.configurationFile und versucht, falls vorhanden, die Konfiguration zu laden.
  2. Wenn keine Systemeigenschaft festgelegt ist, sucht log4j2-test.properties im Klassenpfad nach log4j2-test.properties .
  3. Wird keine solche Datei gefunden, sucht log4j im Klassenpfad nach log4j2-test.yaml oder log4j2-test.yml .
  4. Wird keine solche Datei gefunden, sucht log4j im Klassenpfad nach log4j2-test.json oder log4j2-test.jsn .
  5. Wird keine solche Datei gefunden, log4j2-test.xml im Klassenpfad nach log4j2-test.xml .
  6. Wenn eine Testdatei nicht gefunden werden kann, sucht log4j nach log4j2.properties im Klassenpfad.
  7. Wenn eine Eigenschaftendatei nicht gefunden werden kann, sucht log4j im Klassenpfad nach log4j2.yaml oder log4j2.yml .
  8. Wenn keine YAML-Datei gefunden werden kann, sucht log4j im Klassenpfad nach log4j2.json oder log4j2.jsn .
  9. Wenn keine JSON-Datei gefunden werden kann, versucht log4j, log4j2.xml im Klassenpfad zu finden.
  10. 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