Sök…


Konfigurationsfil

Konfiguration

Log4j-konfigurationsfilen kan vara i något av dessa format:

  • JSON
  • YAML
  • egenskaper (textfil)
  • XML

Konfiguration upptäckt

  1. Log4j kommer att inspektera log4j.configurationFile och om den är inställd kommer den att försöka ladda konfigurationen.
  2. Om ingen systemegenskap är inställd kommer log4j att leta efter log4j2-test.properties i klassvägen.
  3. Om ingen sådan fil hittas kommer log4j att leta efter log4j2-test.yaml eller log4j2-test.yml i klassvägen.
  4. Om ingen sådan fil hittas kommer log4j att leta efter log4j2-test.json eller log4j2-test.jsn i klassvägen.
  5. Om ingen sådan fil hittas letar log4j2-test.xml efter log4j2-test.xml i klassvägen.
  6. Om en testfil inte kan hittas letar log4j2.properties efter log4j2.properties på klassvägen.
  7. Om en egenskapsfil inte kan hittas letar log4j2.yaml efter log4j2.yaml eller log4j2.yml på klassvägen.
  8. Om en YAML-fil inte kan hittas letar log4j2.json efter log4j2.json eller log4j2.jsn på klassvägen.
  9. Om en JSON-fil inte kan hittas kommer log4j att försöka hitta log4j2.xml på klassvägen.
  10. Om ingen konfigurationsfil kunde hittas kommer Standardkonfiguration att användas. Detta kommer att göra att loggningsutgången går till konsolen.

XML-konfiguration

XML-exempel

Nedanstående konfiguration konfigurerar två appendrar (logoutput). De första loggarna till standard systemutgång (konsol) och de andra loggarna till fil. I detta exempel, kan platsen för filen inställas statiskt i konfiguration (appender file ) eller dynamiskt via Maven filtrering av funktionen ( <Property name="APPENDER"> ). Loggarna i filen kommer att packas om dagen. Loggradformatet Conversion Pattern är inställt som en variabel.

<?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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow