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

Log4J2和Tomee Plus 7.0.47不工作

严宏朗
2023-03-14

根据这里,Log4j2应该与Tomcat7.0.47一起工作。我用的是TomEE Plus 7.0.47。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="File" fileName="${sys:catalina.home}/logs/testapp.log">
        <PatternLayout>
            <pattern>%d %p %C{1.} [%t] %m%n</pattern>
        </PatternLayout>
    </File>
</Appenders>
<Loggers>
    <Logger name="org.alex" level="TRACE" additivity="false">
        <AppenderRef ref="File"/>
    </Logger>
    <Root level="INFO">
        <AppenderRef ref="Console"/>
    </Root>
</Loggers>
</Configuration>
private static final Logger LOG = LoggerFactory.getLogger(JSON.class);
  • SLF4J-API-1.7.5.jar
  • log4j-api-2.0-rc1.jar
  • log4j-core-2.0-rc1.jar
  • log4j-SLF4j-impl-2.0-rc1.jar

如果我将配置状态更改为TRACE,我可以看到我的配置文件被拾取,并且配置按预期进行。我还可以看到MBean正在被添加。但是,在我的日志文件中没有一个日志记录语句。我调试到log4j2记录器中,看到isEnabled(...)方法返回false,因为记录器(com.alex.util.json)设置了级别“error”,而配置将包org.alex设置为trace。进一步的调查显示,它使用了为level=error配置的DefaultConfiguration,并且只配置了root。我正在考虑一个类加载器问题,但我似乎无法弄清楚原因是什么以及如何解决它。有人知道我做错了什么吗?

共有1个答案

徐君植
2023-03-14

这应该适用于trunk

顺便说一句,log4j2对tomcat有攻击,由于tomee包装了类加载器,所以不能确保它们能正常工作...

 类似资料:
  • 我尝试配置log4j2以在gradle项目中使用MongoDB,当我在Eclipse和测试中运行时,它工作得很好,但是当我生成一个jar并启动它时,我得到一个错误: 2018-08-13 09:30:11,534主要错误找不到MongoDb的插件类型2018-08-13 09:30:11,548主要错误找不到MongoDb的插件2018-08-13 09:30:11,597主要错误无法为元素NoS

  • 我正在我的web项目中使用log4j2。我试图通过扩展AbstractAppender将日志直接放入Kafka。根据文档,我的理解是我可以为一个自定义的附加器指定patternlayout,并且设置好了,我的记录器将用格式化的字符串向kafka发送日志事件,但这并没有发生。log4j2.xml看起来像

  • 我正在使用log4j 2.4,并尝试将转换为,但是似乎不能使用log4j2.properties。 null 虽然以下文档https://logging.apache.org/log4j/2.x/manual/configuration.html#属性 清楚地表明 属性配置文件支持广告客户、monitorInterval、name、packages、shutdownHook、status 我也尝试

  • 我正在尝试在WebLogic 12.2.1下运行的Web服务中添加log4j日志记录,但不知何故日志记录不起作用。 这是我的WAR文件WEB-INF\classes中的log4j2.xml: 这是我的Web服务代码的片段: 在我的WAR文件的WEB-INF\lib\中,我有: 我可以使用客户端程序成功调用web服务。但我根本没有看到日志文件被创建。有什么问题? 提前感谢。

  • 我有一个maven项目,它使用log4j2进行日志记录。我想覆盖RootLogger的模式。 这是我的log4j2。属性文件: 这是我的pom。log4j的xml文件: 我这样叫我的记录仪: 我的配置有两个问题。第一个是根记录器不使用我的ConsolePender(警告等以默认格式显示),在记录错误时,我只得到第一行,而不是整个堆栈跟踪)。

  • 使用log4j2,我很难让同步记录器和异步记录器一起工作。 从这里以Apache文档(标题为混合同步和异步记录器)为例,运行下面的应用程序将简单地创建日志文件,但不向其写入任何内容。我也不确定添加两个记录器指向同一个appender,但它的Apache留档,所以我假设这是好的。 LOG4J2配置 pom.xml 应用 但是,如果我更改log4j2配置并修改loggers元素以读取以下内容,我将在日