Tomcat 6 和 log4j 应用程序日志记录不产生输出

发布于 2024-07-22 20:41:12 字数 1390 浏览 7 评论 0原文

我正在尝试让 log4j 应用程序(webapp)日志记录在 Tomcat 6 应用程序中工作。 我的 WEB-INF 目录中有 log4j-1.2.15.jar,WEB-INF/classes 中有 log4j.dtd 和 log4j.xml。

我的 log4j.xml 看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="massAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="maxFileSize" value="100KB" />
    <param name="maxBackupIndex" value="2" />
    <param name="File" value="${catalina.home}/logs/mass.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}: %m%n " />
    </layout>
</appender>

<category name="com.company.mass">
    <priority value="DEBUG"/>
    <appender-ref ref="massAppender"/>
</category>

<root>
     <appender-ref ref="massAppender" />
</root>

</log4j:configuration>

我的 servlet 位于包中:

package com.company.mass;

其中记录器声明为:

private static Logger logger = Logger.getLogger(Handler.class);

在我的 doGet(...) 方法的顶部有:

logger.error("foo");

当我在 Tomcat 中部署应用程序并转到 servlet 时,它工作正常。 我什至得到了一个mass.log 文件,但没有任何内容放入其中。 它也没有出现在任何其他日志中,并且没有明显的错误。 知道发生了什么事吗?

I'm trying to get log4j application (webapp) logging working in a Tomcat 6 app. I have log4j-1.2.15.jar in my WEB-INF directory, log4j.dtd and log4j.xml in WEB-INF/classes.

My log4j.xml looks like:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="massAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="maxFileSize" value="100KB" />
    <param name="maxBackupIndex" value="2" />
    <param name="File" value="${catalina.home}/logs/mass.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}: %m%n " />
    </layout>
</appender>

<category name="com.company.mass">
    <priority value="DEBUG"/>
    <appender-ref ref="massAppender"/>
</category>

<root>
     <appender-ref ref="massAppender" />
</root>

</log4j:configuration>

My servlet is in the package:

package com.company.mass;

where the logger is declared as:

private static Logger logger = Logger.getLogger(Handler.class);

and at the top of my doGet(...) method there is:

logger.error("foo");

When I deploy the app in Tomcat and go to the servlet, it works correctly. I even get a mass.log file, but nothing gets put in it. It doesn't show up in any other logs either, and there are no obvious errors. Any idea what's going on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一世旳自豪 2024-07-29 20:41:13

当我遇到这个问题时,我可以通过将 common-logging.jar 添加到我的部署程序集中来解决它。

When I've encountered this problem I was able to resolve it by adding common-logging.jar to my deployment assembly.

强者自强 2024-07-29 20:41:13

尝试将行 : 添加

<param name="Threshold" value="ALL" />

到您的 MassAppender 配置中

,并将此行添加

<priority value ="debug"/>

到您的根定义中

Try adding the line :

<param name="Threshold" value="ALL" />

to your massAppender config

and this line

<priority value ="debug"/>

inside your root definition

伏妖词 2024-07-29 20:41:13

不确定您是否需要根记录器的优先级。 试试这个配置

<category name="com.company.mass">
    <priority value="DEBUG"/> 
    <!-- no need to specify appender again here -->
</category>

<root>
    <priority value="INFO"/> 
     <appender-ref ref="massAppender" />
</root>

Not sure if you need a priority in your root logger. Try this config

<category name="com.company.mass">
    <priority value="DEBUG"/> 
    <!-- no need to specify appender again here -->
</category>

<root>
    <priority value="INFO"/> 
     <appender-ref ref="massAppender" />
</root>
楠木可依 2024-07-29 20:41:12

您确定 log4j 实际上使用您的 log4j.xml 进行配置,而不是类路径上的另一个文件?

启用系统属性 -Dlog4j.debug 以使 log4j 打印出有关其正在使用的配置文件的信息。

Are you sure that log4j is actually using your log4j.xml for it's configuration, and not another file on the classpath?

Enable the system property -Dlog4j.debug to have log4j print out information about exactly which configuration file it is using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文