我有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>
解决了!
我修改了记录器部分,我删除了那两个记录器。
<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,以便它不会生成任何日志?