I would like to use log4j
with Helidon
. Is there any way to change default logging implementation?
Asked
Active
Viewed 1,421 times
2 Answers
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
-
how can we change the log level at runtime? – Akshobhya Mar 26 '21 at 10:25
-
Please make sure your log4j version is 2.16.0 or higher wherever you use it. – Laird Nelson Dec 17 '21 at 05:19