4

我想使用log4jwith Helidon。有没有办法改变默认的日志实现?

4

2 回答 2

2

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

于 2019-12-05T14:45:15.803 回答
1

使用 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>
于 2020-07-20T22:26:14.547 回答