如何在eclipse中将console中的内容显示在Jframe的文本框中?

img

是不是这样的效果?

img

示例参考:

核心代码:

// 定义一个未连接的输入流管道
PipedReader reader = new PipedReader();
// 定义一个已连接的输出流管理,并连接到reader
Writer writer = new PipedWriter(reader)) {
Logger root = Logger.getRootLogger();
// 获取子记录器的输出源
Appender appender = root.getAppender("myConsole");
// 设置 appender 输出流
((WriterAppender) appender).setWriter(writer);

// 然后使用 reader ,不停的从中获取数据
// 不间断地扫描输入流
Scanner scanner = new Scanner(reader);
// 将扫描到的字符流输出到指定的JTextArea组件
while (scanner.hasNextLine()) {
    String line = scanner.nextLine();
    textArea.append(line);
    textArea.append("\n");
}

需要定义 log4j.xml 配置, 输出日志以 logger.error 或 logger.debug 输出

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %t [%c:%L] - %m%n" />
        </layout>
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <param name="levelMin" value="debug" />
            <param name="levelMax" value="error" />
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>
    
    <appender name="myFile" class="org.apache.log4j.RollingFileAppender">
        <!-- 设置日志输出文件名 -->
        <param name="File" value="E:/logs/flea-tools.log" />
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->
        <param name="Append" value="true" />
        <param name="MaxBackupIndex" value="10" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d %-5p %t [%c:%L] - %m%n" />
        </layout>
    </appender>
    
    <logger name="org.springframework">
        <level value="WARN" />
        <appender-ref ref="myConsole" />
        <appender-ref ref="myFile"/>
    </logger>
    
    <logger name="org.hibernate">
        <level value="WARN" />
        <appender-ref ref="myConsole" />
        <appender-ref ref="myFile"/>
    </logger>

    <!-- -->
    <logger name="org.apache">
        <level value="WARN" />
        <appender-ref ref="myConsole" />
        <appender-ref ref="myFile"/>
    </logger>
    
    <!-- 根logger的设置--> 
    <root>
        <priority value="debug" />
        <appender-ref ref="myConsole" />
        <appender-ref ref="myFile"/>
    </root>
    
</log4j:configuration>