JavaShuo
欄目
標籤
log4j 輸出流(WriterAppender) 輸出到 GUI 組件
時間 2019-11-08
標籤
log4j
log
輸出
writerappender
gui
組件
欄目
Log4j
简体版
原文
原文鏈接
網上有關LOG4J的配置不少,其中也有很多提到:「能夠控制日誌信息輸送的目的地是控制檯、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等」。我想把目志輸出到JTextArea,網上搜了好久,沒找到一個好的例子,無心間看到一個網友的貼子,有一段代碼,下下來,一試,還不行,通過幾翻調試,終於能夠了,加了一些註釋,代碼貼在下面,但願對有須要人的有所幫助。
Log4jMain.java
Java代碼
package
log4;
import
java.io.PipedReader;
import
java.io.PipedWriter;
import
java.io.Writer;
import
org.apache.log4j.Appender;
import
org.apache.log4j.Logger;
import
org.apache.log4j.WriterAppender;
/**
*
* 類描述:
* 截取 WriterAppender 輸出流
* 控制 輸出流 目地的
* @author XXX
* @date 2010-3-16 建立
* @version 1.0
*/
public
class
Log4jMain {
public
static
void
main(String[] arg) {
/**
* 獲取記錄器,通用的寫法
* Logger root = Logger.getLogger(Log4jMain.class); 本類類名
* 取得的記錄器名稱爲 "Log4jMain"
* 而 log4j.rootLogger 爲全部記錄器的父類
* 沒有配置子記錄器時,子類都繼承父類的 level and Appender 因此會輸出全部 log
*
* 配置子記錄器:log4j.logger.Log4jMain ,將按子記錄器的 level and Appender 輸出 log
*/
Logger root = Logger.getLogger(
"Log4jMain"
);
// @1
try
{
// 獲取子記錄器的輸出源
Appender appender = root.getAppender(
"WriterAppender"
);
// 定義一個未鏈接的輸入流管道
PipedReader reader =
new
PipedReader();
// 定義一個已鏈接的輸出流管理,並鏈接到reader
Writer writer =
new
PipedWriter( reader) ;
// 設置 appender 輸出流
((WriterAppender) appender).setWriter(writer);
Thread t =
new
AppenderThread(reader);
t.start();
// 打印 log
Logger logger = Logger.getLogger(
"Log4jMain"
);
// @2 與@1取到是同一個記錄器
logger.error(
"This is error"
);
logger.info(
"This is info"
);
logger.debug(
"This is debug"
);
logger.fatal(
"This is fatal"
);
}
catch
(Exception e) {
}
}
}
AppenderThread.java
Java代碼
package
log4;
import
java.io.PipedReader;
import
java.util.Scanner;
import
log4gui.log4j.LogTest;
/**
*
* 類描述:
* 不間斷地掃描輸入流
* 將掃描到的字符流打印在屏目 和傳送到GUI組件
* @author xxx
* @date 2010-3-16 建立
* @version 1.0
*/
public
class
AppenderThread
extends
Thread {
PipedReader reader;
public
AppenderThread(PipedReader reader) {
this
.reader = reader;
}
public
void
run() {
// 不間斷地掃描輸入流
Scanner scanner =
new
Scanner(reader);
// 將掃描到的字符流打印在屏目
while
(scanner.hasNext()) {
System.out.println(scanner.nextLine());
// 實現將字符流打印在GUI組件上 減小代碼量 就不
}
}
}
log4j.properties
Java代碼
log4j.rootLogger= DEBUG
log4j.logger.Log4jMain = INFO,WriterAppender
log4j.appender.WriterAppender=org.apache.log4j.WriterAppender
log4j.appender.WriterAppender.Threshold=debug
log4j.appender.WriterAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.WriterAppender.layout.ConversionPattern=%d{ISO8601} - %p - %m%n
# Configure appender stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd.MM.yyyy HH:mm:ss} %-5p %-20c - %m%n
下面是幾個關於log4j配置的網址,平時只是能把日誌輸出到文件就能夠,也沒理解的這麼細,對學習log4j仍是有一些幫助:
http://wenda.tianya.cn/wenda/thread?tid=0d69e2b909eeb918
http://www.blogjava.net/xzclog/archive/2006/09/04/67481.html
相關文章
1.
log4j輸出到指定日誌文件
2.
log4j日誌輸出
3.
Log4j 輸出日誌
4.
輸入輸出流
5.
Mybatis用log4j輸出日誌,輸出sql到控制檯
6.
文件輸出流
7.
輸入、輸出流
8.
輸入輸出流(IO流)
9.
輸入/輸出流
10.
Java輸入流/輸出流
更多相關文章...
•
Rust 輸出到命令行
-
RUST 教程
•
XSL-FO 輸出
-
XSL-FO 教程
•
Flink 數據傳輸及反壓詳解
•
Git可視化極簡易教程 — Git GUI使用方法
相關標籤/搜索
輸出
14-輸入/輸出
再輸出
輸出文檔
流出
出出
writerappender
輸贏
Log4j
PHP 7 新特性
PHP教程
MySQL教程
數據傳輸
Git GUI
插件
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
NLP《詞彙表示方法(六)ELMO》
2.
必看!RDS 數據庫入門一本通(附網盤鏈接)
3.
阿里雲1C2G虛擬機【99/年】羊毛黨集合啦!
4.
10秒鐘的Cat 6A網線認證儀_DSX2-5000 CH
5.
074《從零開始學Python網絡爬蟲》小記
6.
實例12--會動的地圖
7.
聽薦 | 「談笑風聲」,一次投資圈的嘗試
8.
阿里技術官手寫800多頁PDF總結《精通Java Web整合開發》
9.
設計模式之☞狀態模式實戰
本站公眾號
歡迎關注本站公眾號,獲取更多信息
相關文章
1.
log4j輸出到指定日誌文件
2.
log4j日誌輸出
3.
Log4j 輸出日誌
4.
輸入輸出流
5.
Mybatis用log4j輸出日誌,輸出sql到控制檯
6.
文件輸出流
7.
輸入、輸出流
8.
輸入輸出流(IO流)
9.
輸入/輸出流
10.
Java輸入流/輸出流
>>更多相關文章<<