Java >> Java tutorial >  >> Tag >> Log4j

Log4j 2 understøtter ikke log4j.properties filen længere?

Log4j 2 understøtter ikke længere Log4j v1 ".properties"-formatet (endnu, siden v2.4, understøtter Log4j et egenskabsformat, men dets syntaks er helt anderledes end v1-formatet). Nye formater er XML, JSON og YAML, se dokumentationen (bemærk:hvis du brugte et af disse formater i en fil kaldet ".properties", kan det være forvirrende).

For at angive placeringen af ​​din konfigurationsfil, skal du bruge systemegenskaben log4j.configurationFile , Log4j-klassen ConfigurationFactory , eller noget andet?Har du læst denne manualside? Det forklarer, at:Selvom Log4j 2-konfigurationssyntaksen er anderledes end for Log4j 1.x, er de fleste, hvis ikke alle, af den samme funktionalitet tilgængelige.

Så det ser ud til, at en ældre Log4j1.x log4j.properties fil understøttes ikke som den er, den skal migreres til v2.x-format. Migreringen virker dog ret let, hvis man ser på eksemplet i linket, jeg gav ovenfor. Her er et uddrag:

Eksempel på Log4j v1.x-konfigurationsfil:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </layout>
    </appender>
    <category name="org.apache.log4j.xml">
        <priority value="info" />
    </category>
    <Root>
        <priority value ="debug" />
        <appender-ref ref="STDOUT" />
    </Root>
</log4j:configuration>

Samme konfigurationsfil blev migreret til Log4j v2:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="STDOUT" target="SYSTEM_OUT">
            <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
        </Console>
    </Appenders>
    <Loggers>
    <Logger name="org.apache.log4j.xml" level="info"/>
        <Root level="debug">
            <AppenderRef ref="STDOUT"/>
        </Root>
    </Loggers>
</Configuration>

Fra version 2.4 understøtter Log4J2 nu igen .property-filer. Se her i dokumentationen for egenskabskonfiguration.

Konfiguration med egenskaber

Fra version 2.4 understøtter Log4j nu konfiguration via egenskabsfiler. Bemærk, at egenskabssyntaksen IKKE er den samme som syntaksen, der bruges i Log4j 1. Ligesom XML- og JSON-konfigurationerne definerer egenskabskonfigurationer konfigurationen i form af plugins og attributter til plugins.


Log4j 2 bruger et nyt konfigurationsfilformat. Du skal bruge XML (standard), JSON (med yderligere biblioteker) eller endda YAML (igen, biblioteker). Se dokumentationen.


Java tag