代码之家  ›  专栏  ›  技术社区  ›  Am1rr3zA

使用Scala项目设置log4j2

  •  3
  • Am1rr3zA  · 技术社区  · 8 年前

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

    起初,我只是补充

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

    以列出我的依赖项,并将以下XML文件添加到我的资源文件夹。我已经创建了 resources scala文件夹旁边的文件夹 main test .

    <?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 回复  |  直到 8 年前
        1
  •  4
  •   miskender    7 年前

    根据 Apache page 本项目的 log4j-api log4j-core 版本应为2.8.2(版本2.8.2适用于此情况)

    根据 GitHub page 本项目的 log4j api log4j核心 版本应为2.11.0