Szukaj…


Plik konfiguracyjny

Konfiguracja

Plik konfiguracyjny Log4j może mieć dowolny z następujących formatów:

  • JSON
  • YAML
  • właściwości (plik tekstowy)
  • XML

Odkrycie konfiguracji

  1. Log4j sprawdzi log4j.configurationFile systemową log4j.configurationFile i, jeśli jest ustawiona, podejmie próbę załadowania konfiguracji.
  2. Jeśli nie ustawiono żadnej właściwości systemowej, log4j będzie szukał log4j2-test.properties w ścieżce klasy.
  3. Jeśli taki plik nie zostanie znaleziony, log4j wyszuka log4j2-test.yaml lub log4j2-test.yml w ścieżce klasy.
  4. Jeśli taki plik nie zostanie znaleziony, log4j wyszuka log4j2-test.json lub log4j2-test.jsn w ścieżce klasy.
  5. Jeśli taki plik nie zostanie znaleziony, logj4 będzie szukał log4j2-test.xml w ścieżce klasy.
  6. Jeśli nie można zlokalizować pliku testowego, log4j szuka log4j2.properties na ścieżce klasy.
  7. Jeśli nie można znaleźć pliku właściwości, log4j będzie szukał log4j2.yaml lub log4j2.yml na ścieżce klasy.
  8. Jeśli nie można zlokalizować pliku YAML, log4j będzie szukał log4j2.json lub log4j2.jsn na ścieżce klasy.
  9. Jeśli nie można zlokalizować pliku JSON, log4j spróbuje zlokalizować log4j2.xml na ścieżce klasy.
  10. Jeśli nie można znaleźć pliku konfiguracyjnego, zostanie użyta konfiguracja domyślna. Spowoduje to przejście danych wyjściowych do konsoli.

Konfiguracja XML

Przykład XML

Poniższa konfiguracja konfiguruje dwa programy dołączające (dane wyjściowe dziennika). Pierwsze loguje się na standardowe wyjście systemowe (konsola), a inne loguje do pliku. W tym przykładzie lokalizację pliku można ustawić statycznie w konfiguracji ( file dołączający) lub dynamicznie za pomocą funkcji filtrowania maven ( <Property name="APPENDER"> ). Plik logów zostanie zapakowany w ciągu dnia. Format wiersza dziennika Conversion Pattern jest ustawiany jako zmienna.

<?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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow