使用Scala项目设置log4j2

时间:2018-02-09 20:49:21

标签: scala maven log4j2

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

首先,我刚刚添加了

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

列出我的依赖项并将以下XML文件添加到我的资源文件夹中。我在resourcesmain中创建了test文件夹和scala文件夹。

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

然而,它没有产生这个错误:

  

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

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

1 个答案:

答案 0 :(得分:2)

根据此项目的Apache page log4j-apilog4j-core版本应为2.8.2(本案例适用2.8.2版本)

根据此项目的GitHub page log4j-apilog4j-core版本应为2.11.0