更改 Helidon 中的默认日志记录实现

Change default logging implementation in Helidon

我想将 log4jHelidon 一起使用。有什么方法可以更改默认日志记录实现吗?

在 Helidon 中,我们决定使用 Java Util Logging (JUL),以允许我们的用户选择任何日志记录实现。 JUL 的大多数实现都有桥。对于 log4j,您可以查看此页面: http://people.apache.org/~psmith/logging.apache.org/sandbox/jul-log4j-bridge/examples.html

对于 Helidon 2.0,您将需要:

添加依赖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>

启动应用程序时,使用外部配置 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

或者当您的 log4j2.xml 在 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

示例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>