System.out.print()不起作用,log4j仍然运行良好

问题描述 投票:0回答:1

任何人都可以解释我的问题如下。

  1. 我的java Web应用程序使用org.apache.log4j.Logger库。
  2. 我输入了一个命令:log.info(“这是log4j输出”)
  3. 我把另一个命令如System.out.println(“这是系统输出”)
  4. 好的,我通过tomcat服务器部署Web应用程序。

现在,我跟踪登录catalina.out。我的问题:

在运行应用程序期间,显示“这是log4j输出”,但未显示“这是系统输出”。

这是log4j配置:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
    xmlns:log4j='http://jakarta.apache.org/log4j/'>

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" 
          value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="DEBUG" />
        <appender-ref ref="console" />
    </root>

</log4j:configuration>

我认为它们都将被显示(log4j输出和system.out)。

我不知道为什么。愿有人解释这个问题吗?

谢谢!

java tomcat log4j
1个回答
3
投票

System.out打印到“标准输出”控制台。这可以是你的文本控制台,但它可以是任何东西,因为它可以很容易地配置到其他地方。

另一方面,可以将任何记录器库配置为记录到您想要的任何位置。

长话短说:很可能,这是由于您环境中的某些特定配置设置。但我们不知道您的设置,因此我们无法提供更具体的答案。

© www.soinside.com 2019 - 2024. All rights reserved.