System.out.print()无法正常工作,log4j仍然可以正常工作

时间:2018-11-21 07:39:25

标签: java tomcat log4j

有人可以为我的问题解释如下。

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

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

在应用程序运行期间显示“ this is log4j output”,但未显示“ This is system out put”。

这是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)。

我不知道为什么。谁能解释这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

System.out打印到“标准输出”控制台。那可以是您的文本控制台,但也可以是任何东西,因为可以轻松地将其配置为在其他地方使用。

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

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