Recherche…


Fichier de configuration

Configuration

Le fichier de configuration Log4j peut être dans l'un des formats suivants:

  • JSON
  • YAML
  • propriétés (fichier texte)
  • XML

Découverte de la configuration

  1. Log4j inspectera la propriété système log4j.configurationFile et, si elle est définie, tentera de charger la configuration.
  2. Si aucune propriété système n'est définie, log4j recherchera log4j2-test.properties dans le classpath.
  3. Si aucun fichier de ce type n'est trouvé, log4j recherchera log4j2-test.yaml ou log4j2-test.yml dans le classpath.
  4. Si aucun fichier de ce type n'est trouvé, log4j recherchera log4j2-test.json ou log4j2-test.jsn dans le classpath.
  5. Si aucun fichier de ce type n'est trouvé, logj4 recherche log4j2-test.xml dans le classpath.
  6. Si un fichier de test ne peut pas être localisé, le fichier log4j recherche le log4j2.properties sur le log4j2.properties de log4j2.properties .
  7. Si un fichier de propriétés ne peut pas être localisé, le fichier log4j recherche le log4j2.yaml ou log4j2.yml sur le log4j2.yml de log4j2.yml .
  8. Si un fichier YAML ne peut pas être localisé, le fichier log4j recherche le log4j2.json ou le log4j2.jsn sur le log4j2.jsn de log4j2.jsn .
  9. Si un fichier JSON ne peut pas être localisé, log4j essaiera de localiser log4j2.xml sur le log4j2.xml de log4j2.xml .
  10. Si aucun fichier de configuration ne peut être localisé, la configuration par défaut sera utilisée. Cela entraînera la sortie de journalisation pour aller à la console.

Configuration XML

Exemple XML

La configuration ci-dessous configure deux appenders (sortie de journal). Les premiers journaux sur la sortie du système standard (console) et les autres journaux à classer. Dans cet exemple, l'emplacement du fichier peut être défini de manière statique dans la configuration ( file appender) ou dynamiquement via la fonctionnalité de filtrage maven ( <Property name="APPENDER"> ). Les fichiers dans le fichier seront emballés par jour. Le format de Conversion Pattern format de ligne de journal est défini comme une variable.

<?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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow