log4j的WriterAppender的应用 http://bill-xing.iteye.com/
来源:互联网 发布:待办事项提醒软件 编辑:程序博客网 时间:2024/06/10 13:00
- log4j
这几天做项目,需要做一个类似于控制台的界面,可以将日志回显到一个文本区域里,几经查找,反复测试写了以下测试代码。
这是log4j.properties的配置内容
log4j.rootCategory= ,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
主程序
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;public class Log4jMain {
static public Logger logger = Logger.getLogger(Log4jMain.class);public static void main(String[] arg) {
Logger root = Logger.getRootLogger();
try {
Appender appender = root.getAppender("WriterAppender");
PipedReader reader = new PipedReader();
Writer writer = new PipedWriter( reader) ;
((WriterAppender) appender).setWriter(writer);
Thread t = new AaaThread(reader);
t.start();
Logger logger = Logger.getLogger(Log4jMain.class);
logger.error("asdf");
logger.info("asdf");
logger.debug("asdf");
logger.fatal("asdf");
//hh是一个class,test方法里只有几个logger.info("aaa"),用于测试用,这东西可以去掉
new HH().test();} catch (Exception e) {
} }
}
因为log4j提供的是 Writer,所以通过使用PipedWriter连接到PipedReader,并通过一个thread来处理 PipedReader的数据就可以回显了。如果你需要的话可以将下面的 System.out.println(scanner.nextLine());改成你需要显示的地方就行了。
import java.io.PipedReader;
import java.util.Scanner;public class AaaThread extends Thread {
PipedReader reader; public AaaThread(PipedReader reader) {
this.reader = reader;
} public void run() {
Scanner scanner = new Scanner(reader);
while (scanner.hasNext()) {
System.out.println(scanner.nextLine());
}
}
}
- log4j的WriterAppender的应用 http://bill-xing.iteye.com/
- log4j的WriterAppender的应用
- 我的iteye地址是:http://nannan408.iteye.com
- Log4J学习【十九】常用的Appender之WriterAppender
- 我原来的blog:http://wangbin579.iteye.com/
- volatile 的使用(http://gyy.iteye.com/blog/166678)
- http://zhangfan822.iteye.com/
- spring企业级应用http://zz563143188.iteye.com/blog/1825168
- ITEYE博客地址:http://mengnanleo.iteye.com/
- java map的重复键值的排序http://tbwuming.iteye.com/blog/1873634
- 利用Java生成静态HMTL页面的方法----------转自http://playfish.iteye.com/blog/150386
- tomcat中三种部署项目的方法 http://leowzy.iteye.com/blog/482044
- Jsp页面传值的方法(转自http://jzgl-javaeye.iteye.com/blog/372349#)
- WinForm下DataGridView导出Excel的实现 转处:http://seloba.iteye.com/blog/1017715
- Java 创建简单的WebService (转载自http://wl-ldy.iteye.com/blog/1055428)
- struts2.1 datetimepicker日期控件的使用http://huibin.iteye.com/blog/674738
- java swing 列表的显示使用(转)http://endual.iteye.com/blog/1526689
- 五年软件开发的一点自我总结 转自http://runfeel.iteye.com/blog/1873170
- js 判断是否安装qq msn等
- ass109.awk脚本学习使用
- dpkg
- Facebook推出Camera 让Instagram情何以堪
- IoCreateDevice
- log4j的WriterAppender的应用 http://bill-xing.iteye.com/
- [信息系统项目管理师资料合集].zs.rar
- 纪念USACO的第一次
- Android相关编译和目录小计
- JETTY部署注意的数据库连接问题
- 买手纸
- AspNetPager分页控件的使用以及常见错误
- VB.net获取屏幕分辨率
- will not be exported or published. Runtime ClassNotFoundExceptions may result