如何在Tomcat 9上使用Log4J配置应用程序日志记录? [英] How to configure application logging using Log4J on Tomcat 9?

查看:91
本文介绍了如何在Tomcat 9上使用Log4J配置应用程序日志记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用Log4J从基于Tomcat的应用程序中记录日志.

I want to use Log4J to log from my Tomcat-based application.

Log4J配置为

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true">

    <appender name="roller" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${catalina.base}/logs/application.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[slf5s.start]%d{DATE}[slf5s.DATE]%n%p[slf5s.PRIORITY]%n%x[slf5s.NDC]%n%t[slf5s.THREAD]%n%c[slf5s.CATEGORY]%n%l[slf5s.LOCATION]%n%m[slf5s.MESSAGE]%n%n"/>
        </layout>
    </appender>


    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
                <param name="ConversionPattern" value="|%d|%5.5p|%5.5t|%20.20c{20}.%M - %m%n"/>
        </layout>
    </appender>

    <category name="com.acme" additivity="false">
        <priority value="trace"/>
        <appender-ref ref="roller"/>
        <appender-ref ref="console"/>
    </category>

</log4j:configuration>

我可以在stdout/stderr日志中看到Log4J已初始化,并创建了预期的日志文件,但该文件为空.

I can see in the stdout/stderr logs that Log4J gets initialised and the expected logging file is created but it remains empty.

其他所有catalina日志均已创建并填充.JULI日志记录是否有可能阻止Log4J正常工作?

The other catalina logs are all created and filled. Is it possible that the JULI logging is preventing Log4J from working properly?

推荐答案

我正在将项目从Websphere迁移到Tomcat,还引入了Maven.

I am migrating the project from Websphere to Tomcat and also introducing Maven.

问题在于Maven依赖项正在加载2个SLF4J提供程序:log4j适配器和经典的logback.

The problem was that Maven dependencies was loading 2 SLF4J providers: log4j adapter and classic logback.

这导致使用NopLogger,它不会记录任何内容.

This resulted in the NopLogger being used which does not log anything.

我明确地排除了经典的logback依赖性,并且现在可以进行记录了.

I explicitly excluded the classic logback dependency and logging now works.

这篇关于如何在Tomcat 9上使用Log4J配置应用程序日志记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆