是不是这样的效果?
示例参考:
核心代码:
// 定义一个未连接的输入流管道
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>