java - 使用log4j如何在日志文件中打印System.out.println语句

标签 java log4j

我还在学习log4j,我面临这个问题。

在我当前的示例中,我无法在日志文件中打印 System.out.println 语句。

我已经浏览了 Stack Overflow 中的其他问题和答案,这是一个重复的问题,但我仍然不明白。

下面是Java类

public class Testing
{
private final static Logger logger = Logger.getLogger(Testing.class);
static
{
    PropertyConfigurator.configure("log4j.properties");
}
public static void main(String args[])
{
    System.out.println("Entered main method...............");
    logger.error("An error has occurred might");
}
}

log4j.properties 文件:

log4j.rootLogger=DEBUG, file, console

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/justfortesting.log
log4j.appender.file.Append=true
log4j.appender.file.ImmediateFlush=true   
log4j.appender.FILE.filter.b=org.apache.log4j.varia.LevelMatchFilter    
log4j.appender.FILE.filter.b.LevelToMatch=ERROR    
log4j.appender.FILE.filter.b.AcceptOnMatch=false 
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %d{Z} [%t] %-5p (%F:%L) - %m%n

log4j.logger.com.log4j=DEBUG, file, console

log4j.additivity.com.log4j=false

所以有人建议,我需要对此进行哪些更改/添加新内容?

最佳答案

通过修改我的 Testing 类并使用现有代码添加一个新类,我得到了上述问题的解决方案。

public class Testing
{
private final static Logger logger = Logger.getLogger(Testing.class);
static
{
    PropertyConfigurator.configure("log4j.properties");
}
public static void main(String args[])
{
    Logger out = Logger.getLogger("SystemOut");
    Level info = Level.INFO;
    System.setOut(new PrintStream(new LoggingOutputStream(out, info),true));
    System.out.println("Entered main method...............");
    System.out.println("Printing 2nd...............");
}
}

已添加LoggingOutputStream用于在日志文件中打印 System.out.println 语句的类。

关于java - 使用log4j如何在日志文件中打印System.out.println语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44178441/

相关文章:

java - BufferedWriter 仅保存文本文件中的最后输入

java - 从 Http Servlet 请求 header 中读取浏览器/客户端时间

java - 使用 Java API 将本地文件上传到远程 hdfs 但连接到 localhost

hadoop - Log4j RollingFileAppender 没有将映射器和缩减器日志添加到文件

java - 如何使此应用程序中的 Apache Log4J 日志记录有用?

java - 在后台服务中计算时间

eclipse - Ant eclipse : package org.apache.log4j does not exist

java - 禁用log4j 2异常(apache异常)

java - 日志中 pretty-print spring-ws SOAP 消息

java - JButton 子类在重绘期间具有自定义形状变化