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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System.out.print()不起作用,log4j仍然运行良好相关的知识,希望对你有一定的参考价值。

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

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

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

谢谢!

答案

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

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

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

以上是关于System.out.print()不起作用,log4j仍然运行良好的主要内容,如果未能解决你的问题,请参考以下文章

使用 PreparedStatement 登录在 Java 中不起作用 [重复]

java中System.out.print()与System.out.println()与System.out.printf()的差别

JAVA中System.out.println和System.out.print有什么区别

JAVA中System.out.println和System.out.print有啥区别?

Print工具类

VS 代码标志 System.out.print