网上有关LOG4J的配置很多,其中也有不少提到:“可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等”。我想把目志输出到JTextArea,网上搜了很久,没找到一个好的例子,无意间看到一个网友的贴子,有一段代码,下下来,一试,还不行,经过几翻调试,终于可以了,加了一些注释,代码贴在下面,希望对有需要人的有所帮助。
Log4jMain.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
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
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
分享到:
相关推荐
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式...
log4j-jmx-gui-2.0.2-javadoc.jar, log4j-jmx-gui-2.0.2-sources.jar, log4j-jmx-gui-2.0.2.jar, log4j-nosql-2.0.2-javadoc.jar, log4j-nosql-2.0.2-sources.jar, log4j-nosql-2.0.2.jar, log4j-over-slf4j-1.5.0....
设置log4j的根目录,值为 日志等级(DEBUG,INFO,WARN,ERROR,FATAL) , 输出目标名称 log4j.rootLogger=DEBUG,A1 设置输出方式,常用的有: ConsoleAppender 在控制器中输出信息 RollingFileApperder 在文件中输出...
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...
根据项目需要,要求日志文件名及输出的日志内容头为特殊的格式,因此重写了log4j的一些方法,如要求的格式和项目不同,可根据示例参考进行再次的修改
一直在使用log4j。输出到文件的方式配置log4j。 这是一个最简单的实现上述功能的eclipse工程。
通过Log4j输出日志到数据库表中,有表的创建sql,是完整的一套代码,可以直接运行。
log4j 配置 输出日志到控制台 到文件 代码及案例方便学习
若依框架使用的log4j2.16.0,修复log4j漏洞log4j2下载最新log4j2.16.0下载
本工程以一个简单的log4j示例演示了log4j的使用方法 本工程编码方式:UTF-8 本工程开发工具:MyEclipse 说明:log4j详细使用方法请参考博客:http://blog.csdn.net/gaohuanjie/article/details/44077551
Log4j2实现不同线程不同级别日志输出到不同的文件中 源码+log4j jar包
Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:
Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过...
log4j详解-信息输出到文件或控制台 log4j详解-信息输出到文件或控制台
log4j错误打印到控制台 并且输出sql语句
Apache log4j2零日漏洞,根据 log4j-2.15.0-rc2 版本编译生成log4j-api-2.15.0.jar 1.解压你的jar jar xvf XXX.jar 2. 删除旧版本jar cd ./BOOT-INF/lib rm -rf log4j-api-*.jar 3. 上传新版本log4j-api-2.15.0....
参照了几个网上大神配置,部分教程的描述有误,最终调试完成,可以实现kettle日志输出,测试版本...需要替换的文件为,Kettle的程序目录下data-integration-6.0\plugins\kettle5-log4j-plugin中有一个log4j.xml文件。
Log4J 日志文件输出Demo
log4j输出日志到flume例子,包含log4j配置,flume配置,测试类
NULL 博文链接:https://wwwiteye.iteye.com/blog/1985170