当前位置: 首页 > 知识库问答 >
问题:

用Scala项目设置log4j2

贾实
2023-03-14

我正在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>

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

错误状态记录器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

然后我找到了这篇帖子,所以我更新了我的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个答案

云承天
2023-03-14

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

根据该项目的GitHub页面log4j apilog4j核心版本应为2.11.0

 类似资料:
  • 主要包括: 项目信息及项目授权管理的配置。 7.1.1 项目信息 展示在新建项目时,您所填写的项目信息及备注,并且可在此进行修改。 7.1.2 授权管理 授权的主体为用户邮箱账号。 授权管理主要包含 项目的授权,及站点的授权。 分别介绍如下: 分类 授权项 解释 项目权限 无法查看项目用户 被授权账号拥有访问项目的权限,而无法查看项目是否有其他授权用户 项目权限 允许查看项目用户 被授权账号拥有访

  • 我对kotlin和gradle是新手,试图建立我的第一个项目: 然后得到错误消息“src\main\kotlin\main.kt:(4,4):Unresolved reference:println”。 我从http://kotlinlang.org/docs/reference/using-gradle.html复制的build.gradle文件 我希望标准库是自动包含的--或者我需要在这里添加

  • Angular 2采用将应用程序分为许多不同组件的方法,每个组件可以有多个文件。以这种方式分离应用程序逻辑对程序员是有好处的,但是会减损用户体验,因为这样做会增加页面加载时间。 HTTP2旨在以一种方式解决这个问题,但是直到更多的知道它的效果,我们将需要捆绑我们的应用程序的不同部分,并压缩它。 我们的平台,浏览器,必须继续提供所有现有代码的向后兼容性,并且这需要慢慢移动添加到HTML / CSS

  • 项目设置 面板通过主菜单的 项目->项目设置... 菜单打开,这里包括所有特定项目相关的设置。这些设置会保存在项目的 settings/project.json 文件里。如果需要在不同开发者之间同步项目设置,请将 settings 目录加入到版本控制。 分组管理 目前项目设置中的分组管理主要为 碰撞体系统 提供分组支持,详情请参考 碰撞分组管理。 模块设置 这里的设置是针对发布 Web 版游戏时引

  • 项目设置面板通过主菜单的 项目 -> 项目设置 菜单打开,这里包括所有特定项目相关的设置,这些设置将会影响到整个游戏项目的预览、构建等。这些设置会保存在项目的 settings / packages 文件夹里。如果需要在不同开发者之间同步项目设置,请将 settings 目录加入到版本控制。 通用设置 默认 Canvas 设置 默认 Canvas 设置包括设计分辨率和适配屏幕宽度/高度,用于规定在