Am1rr3zA
Am1rr3zA

Reputation: 7411

Setting up log4j2 with Scala project

I am using Maven for my Scala project and I am trying to use log4j2.

At First, I just added

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api-scala_2.11</artifactId>
    <version>11.0</version>
</dependency>

To list of my dependency and add the following XML file to my resources folder. I have created the resources folder alongside scala folder both in main and test.

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %logger{0} %msg%n"/>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="com.simpleproject" level="debug" additivity="false">
            <AppenderRef ref="console"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="console"/>
        </Root>
    </Loggers>
</Configuration>

Yet it didn't work a produce this error :

ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...

Even I tried properties file instead of XML but still no luck:

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}/full-scala.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=guru.springframework.blog.log4j2properties
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

Then I find this post, so I update my pom.xml to have this 3 dependancy:

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api-scala_2.11</artifactId>
            <version>11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.10.0</version>
        </dependency>

But Still I get the same error and it doesn't show the log the way I want or the level of the log I want (Only shows level above Error)

Upvotes: 4

Views: 3639

Answers (1)

miskender
miskender

Reputation: 7938

According to Apache page of this project log4j-api and log4j-core versions should be 2.8.2 (Version 2.8.2 worked for this case)

According to GitHub page of this project log4j-api and log4j-core versions should be 2.11.0

Upvotes: 4

Related Questions