5

I would like to use log4j with Helidon. Is there any way to change default logging implementation?

matthieu
  • 1,412
  • 1
  • 11
  • 33
thval
  • 53
  • 4

2 Answers2

2

In Helidon, we have decided to use to use Java Util Logging (JUL), to allow our users to choose any logging implementation. There are bridges for most implementations for JUL. For log4j, you can have a look at this page: http://people.apache.org/~psmith/logging.apache.org/sandbox/jul-log4j-bridge/examples.html

Tomas Langer
  • 451
  • 3
  • 5
1

With Helidon 2.0 you will need:

Add dependency log4j2

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

when start your application, add this variables using external configuration log4j:

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
-Dlog4j.configurationFile=file:/conf/log4j2.xml

java  -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
-Dlog4j.configurationFile=file:/conf/log4j2.xml -jar target/your-app.jar

Or when your log4j2.xml is inside src/main/resources/log4j2.xml

-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager

java  -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager -jar target/your-app.jar

Example log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="info">
    <Appenders>
        <Console name="LogToConsole" target="SYSTEM_OUT">
            <PatternLayout>
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %p %c{1.} %m%n</Pattern>
            </PatternLayout>
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="io.helidon" level="info" additivity="false">
            <AppenderRef ref="LogToConsole" />
        </Logger>
        <Root level="info" additivity="false">
            <AppenderRef ref="LogToConsole" />
        </Root>
    </Loggers>
</Configuration>
JE Zamora
  • 146
  • 8