【问题标题】:Setting up log4j2 with Scala project使用 Scala 项目设置 log4j2
【发布时间】:2018-07-20 16:46:36
【问题描述】:

我在我的 Scala 项目中使用Maven,我正在尝试使用 log4j2。

一开始我只是添加了

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

列出我的依赖项并将以下 XML 文件添加到我的资源文件夹。我在maintest 中都在scala 文件夹旁边创建了resources 文件夹。

<?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>

但它没有产生这个错误:

ERROR StatusLogger Log4j2 找不到日志记录实现。 请将 log4j-core 添加到类路径中。使用 SimpleLogger 记录到 控制台...

即使我尝试了属性文件而不是 XML,但仍然没有运气:

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

然后我找到了这个 post,所以我更新了我的 pom.xml 以拥有这 3 个依赖项:

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

但我仍然收到相同的错误,它没有按我想要的方式显示日志或我想要的日志级别(仅显示错误以上的级别)

【问题讨论】:

    标签: scala maven log4j2


    【解决方案1】:

    根据这个项目的Apache pagelog4j-apilog4j-core 版本应该是2.8.2(2.8.2 版本适用于这种情况)

    根据这个项目的GitHub pagelog4j-apilog4j-core版本应该是2.11.0

    【讨论】:

    • 我只是误贴了Spark,不是这个问题
    • 2.8.2 有效,但 2.9.1 无效,这是什么问题?为什么它不适用于最新版本?
    • @Am1rr3zA 可能 api 已更改,他们的 GitHub 页面包含错误信息。 2.9.1 可能适用于 Scala-log4j 版本 13
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 2018-06-25
    • 2019-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 2011-12-29
    相关资源
    最近更新 更多