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

错误StatusLogger无法识别的格式说明符

林绪
2023-03-14

Spring 4.3.30 hibernate 5应用程序。pom.xml具有所有log4j2依赖项。

 <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-jcl</artifactId>
    <version>${log4j2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>${log4j2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-slf4j-impl</artifactId>
    <version>${log4j2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>${log4j2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-1.2-api</artifactId>
    <version>${log4j2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-to-slf4j</artifactId>
    <version>${log4j2.version}</version>
  </dependency>

甚至增加了log4j2.xml

<?xml version="1.0" encoding="UTF-8" ?>
  <Configuration status="TRACE">

  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="%p [%t] %c{1}.%M(%L) | %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Root level="INFO">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>

</Configuration>

我得到的错误是:

ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [logger]
ERROR StatusLogger Unrecognized conversion specifier [logger] starting at position 47 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [msg]
ERROR StatusLogger Unrecognized conversion specifier [msg] starting at position 54 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [n]
ERROR StatusLogger Unrecognized conversion specifier [n] starting at position 56 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [d]
ERROR StatusLogger Unrecognized conversion specifier [d] starting at position 16 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [thread]
ERROR StatusLogger Unrecognized conversion specifier [thread] starting at position 25 in conversion pattern.
ERROR StatusLogger Unrecognized format specifier [level]
ERROR StatusLogger Unrecognized conversion specifier [level] starting at position 35 in conversion pattern.

我还错过了什么,因为即使我的模式不包含默认布局,我也一直在出错?我在迁移到log4j之前使用log4jlog4j2.Din计划迁移到log4j2,但由于我必须升级Spring和hibernate,我开始找到ERROR StatusLogger No Log4j2配置文件。这时我决定迁移到log4j2。

共有1个答案

田冥夜
2023-03-14

首先,让我们列出您的依赖项以及它们的作用:

    < li>log4j-jcl为Apache Commons Logging提供了一个实现,用于将这些日志调用路由到Log4j 2。 < li>log4j-core是Log4j 2的实现。 < li>log4j-slf4j-impl使用SLF4J API将日志记录调用路由到Log4j 2。 < li>log4j-api是Log4j 2 API。 < li>log4j-1.2-api将使用log4j 1.x进行的日志记录调用路由到Log4j 2。 < li>log4j-to-slf4j将日志记录调用从Log4j 2 API路由到slf4j。

如果从描述中不清楚,第6项将是一个问题。首先,您现在有两个Log4j 2 API的实现——Log4j核心和Log4j-to-slf4j。如果log4j-to-slf4j是一个“赢”的人,那么您最终将无处登录,因为调用将在log4j和slf4j之间反弹并再次返回。

但是,如果这些都在pom的依赖关系管理部分中,那将是一个不同的故事,因为所有所做的就是声明要使用的jars版本。

至于您看到的错误,这是因为Log4j的核心插件由于某种原因未加载而发生。如果您将所有内容着色到单个罐子中,并且不包含Log4j的Log4jPlugins.dat文件,则可能会发生这种情况。

 类似资料:
  • xml配置。log4j2.version=2.10.0,Spring Boot版本为1.5.9 log4j2.xml配置

  • 我有一个运行在Tomcat 8上的web应用程序的log4j2配置文件,如下所示 我看到我的 Web 应用写入日志文件,但我对线程名称的 %t 模式似乎无法解析,因此我收到这样的日志语句 请注意,我得到%t而不是线程名称 所以为了解决这个问题,我使用选项启动了Tomcat 当webapp正在部署和log4j2正在初始化时,我看到catalina.out中打印出以下消息。 我的web应用程序包含以下

  • 我有一个用Java编写的AWS Lambda函数。我想用一个自定义的GraalVM运行时来运行Lambda函数,例如在这篇博客文章中所做的 每当应用程序启动时,我都会收到以下错误: 这是我的log4j2.xml文件的样子 这里的其他类似问题表明,这是由于fatjar中存在冲突的log4j包。基于这个答案中的建议,我现在使用shadowJar和一个转换来构建fatjar,GraalVM应用程序就是从

  • 我使用Java8的ZonedDateTime和DateTimeFormatter。当我试图解析自己的模式时,它无法识别并抛出异常。

  • DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。 如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。 通过快捷按钮,您可以更方便地使用这些标记。 基本文本格式 DokuWiki支持 粗体, 斜体, 下划线 以及 等宽体 等格式。当然,您

  • DokuWiki 支持一些简单的标记语言, 以尽最大可能使文档看上去更友好。本页面包含了所有你在编辑页面时可能用到的语法的说明。如果需要查看本页源码,只需要点击页面顶部或者底部的 编辑本页 按钮即可。 如果您是初尝Wiki,那么可以使用 Wiki砂箱 来尽情挥洒。 通过快捷按钮,您可以更方便地使用这些标记。 注:本文档由 jiayq84@gmail.com 根据DokuWiki 2005.2.6版