Zoeken…


Configuratiebestand

Configuratie

Log4j-configuratiebestand kan een van deze formaten hebben:

  • JSON
  • YAML
  • eigenschappen (tekstbestand)
  • XML

Configuratie detectie

  1. Log4j zal de log4j.configurationFile inspecteren en, indien ingesteld, proberen de configuratie te laden.
  2. Als er geen systeemeigenschap is ingesteld, zoekt log4j2-test.properties naar log4j2-test.properties in het log4j2-test.properties .
  3. Als een dergelijk bestand niet wordt gevonden, zoekt log4j2-test.yaml naar log4j2-test.yaml of log4j2-test.yml in het log4j2-test.yml .
  4. Als een dergelijk bestand niet wordt gevonden, zoekt log4j2-test.json naar log4j2-test.json of log4j2-test.jsn in het log4j2-test.jsn .
  5. Als een dergelijk bestand niet wordt gevonden, zoekt de logj4 naar log4j2-test.xml in het classpath.
  6. Als een testbestand niet kan worden gevonden, zoekt log4j2.properties naar log4j2.properties op het log4j2.properties .
  7. Als een eigenschappenbestand niet kan worden gevonden, zoekt log4j2.yaml naar log4j2.yaml of log4j2.yml op het log4j2.yml .
  8. Als een YAML-bestand niet kan worden gevonden, zoekt log4j2.json naar log4j2.json of log4j2.jsn op het log4j2.jsn .
  9. Als een JSON-bestand niet kan worden gevonden, probeert log4j2.xml op het log4j2.xml te vinden.
  10. Als er geen configuratiebestand kon worden gevonden, wordt de standaardconfiguratie gebruikt. Hierdoor gaat de loguitvoer naar de console.

XML-configuratie

XML-voorbeeld

De onderstaande configuratie configureert twee appenders (log-uitvoer). De eerste logs naar standaard systeemuitvoer (console) en de andere logs naar bestand. In dit voorbeeld kan de locatie van het bestand statisch worden ingesteld in de configuratie (appender- file ) of dynamisch via de maven-filterfunctie ( <Property name="APPENDER"> ). Het inlogbestand wordt per dag ingepakt. Het logboekregelformaat Conversion Pattern is ingesteld als een variabele.

<?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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow