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

log4j2-如何设置对我的新记录器的引用

查宜修
2023-03-14

我有log4j2的xml配置文件,但记录器不工作。如果我在运行程序时将根记录器的引用设置为“info”的“errors”(我的新附加项),则记录器工作并将数据写入记录器文件,但如果我将这些附加项设置为我的新记录器(“information”和“errorlog”),则记录器不会将任何数据写入我的日志文件。

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

<Configuration>

  <Appenders>

    <Console name="Console">
      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>

    <File name="Info" fileName="logs/info.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>

        <File name="Errors" fileName="logs/errors.log">
      <PatternLayout>
        <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
      </PatternLayout>
    </File>

  </Appenders>


  <Loggers>
      <Logger name="Information" level="debug">
      <AppenderRef ref="Info"/>
    </Logger>

        <Logger name="ErrorLog" level="error">
      <AppenderRef ref="Errors"/>
    </Logger>


    <Root level="debug">
      <AppenderRef ref="Console"/>
    </Root>
  </Loggers>



</Configuration>

共有1个答案

公西鸿博
2023-03-14

解决了!

我修改了记录器部分,我删除了那两个记录器。

    <Loggers>
    <Root level="debug">
      <level value="DEBUG" />
        <appender-ref ref="Console" />
        <appender-ref ref="Info" />
        <appender-ref ref="Errors" />
    </Root>
  </Loggers>
 类似资料:
  • 根据Log4j 2手册: LoggerConfig(包括根LoggerConfig)可以配置属性,这些属性将添加到从ThreadContextMap复制的属性中。这些属性可以从应用程序、筛选器、布局等中引用,就像它们是线程上下文映射的一部分一样。 但是,我找不到怎么做。我尝试了以下方法: 使用此配置,ThreadContextMap将不会有任何“关注”键,并且状态记录器将输出: 尝试将属性属性属性

  • 我使用Log4J2“使所有记录器异步”部分,设置: https://logging.apache.org/log4j/2.x/manual/async.html 我处理大量日志,然后在退出之前停止附加程序: 通过这样做,我希望它将刷新异步附加器,并在我退出程序之前将剩余的日志写入磁盘。 但事情是这样的: 因此,关闭看起来不像是实际刷新,记录器最终失败。 我的会议: 如何刷新/同步log4j2?

  • 由此我从NetBeans得到以下错误消息: 所有异常消息都写入控制台,包括用户日志的消息。所以我知道两个伐木工都在工作。记录器附加器写入文件OK。userLog记录器不会创建任何文件,它使用几乎相同的附加器。 看来我还没有正确地命名一些东西来允许log4j2找到记录器。我试过各种命名的组合来弄对它,但我搞不清问题出在哪里。 我必须在每个类的记录器初始化中包含类名吗? 编辑:我需要包含包名。我花了一

  • 这与log4j2版本2.13.2有关。 以下是一系列简短的事件-- 应用程序启动,并从类路径加载log4j2.xml. 应用程序按预期进行适当的日志记录。 第一次API调用发生。在内部加载log4j2_api.xml,并根据其配置进行API日志记录。 应用程序从API接收所需的数据并继续进行,但没有所需的日志记录。 我在这里的描述是--如果在新的配置中发现了预先加载的(由初始配置)记录器/追加器,

  • 我定义了多个记录器,如下所示(com.xyz和org.xyz)。Log4j2忽略了第一个记录器定义,只加载第二个。在示例中,org.xyz未加载。 在log4j2调试消息下方查找。 我的配置正确吗?

  • 如何在JMeter 4.0中禁用日志记录。在执行任何JMeter脚本时,都需要根据定义的日志级别生成日志。 log4j2 中的配置应该是什么.xml,以便它不会生成任何日志?