log4j2Aan de slag met log4j2


Opmerkingen

Deze sectie geeft een overzicht van wat log4j2 is en waarom een ontwikkelaar het misschien wil gebruiken.

Het moet ook alle grote onderwerpen binnen log4j2 vermelden en naar de gerelateerde onderwerpen verwijzen. Aangezien de documentatie voor log4j2 nieuw is, moet u mogelijk eerste versies van die gerelateerde onderwerpen maken.

Waarom niet Log4j 1.x?

Log4j 1.x is aan het einde van de levensduur vanaf 5 augustus 2015. [1] [2]. Apache Log4j 2 is de opvolger van Log4j 1.x; biedt bindingen voor projecten die afhankelijk zijn van Log4j 1.x, maar die willen upgraden naar Log4j 2. Naast compatibiliteit met Log4j 1.x, wordt compatibiliteit geboden voor de API's SLF4J, Commons Logging en java.util.logging.

[1] https://logging.apache.org/log4j/1.2/
[2] https://blogs.apache.org/foundation/entry/apache_logging_services_project_announces

Installatie of instellingen

Dit zou een basisinstelling zijn waarin we alle logboekberichten naar de console en naar een logboekbestand sturen.

Laten we beginnen met de bibliotheken. Zal daarvoor maven gebruiken:

    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.8.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.8.2</version>
    </dependency>
 

Vervolgens zullen we de log4j2.properties schrijven (ik zal in dit geval een eigenschappenbestand gebruiken). We plaatsen het in het contextpad, in maven zou het in de map resources moeten staan (in de meeste gevallen src / main / resources)

name=PropertiesConfig
property.filename = logs
appenders = console, file

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type = File
appender.file.name = LOGFILE
appender.file.fileName=${filename}/propertieslogs.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

loggers=file
logger.file.name=com.es.form.studio
logger.file.level = debug
logger.file.appenderRefs = file
logger.file.appenderRef.file.ref = LOGFILE

rootLogger.level = debug
rootLogger.appenderRefs = stdout
rootLogger.appenderRef.stdout.ref = STDOUT
 

Om dit voorbeeld te gebruiken, moet u logger.file.name = com.es.form.studio wijzigen zodat deze het pakket van uw keuze target. Als u dat niet doet, toont het bestand geen logboeken.