Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » 技术文章库  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 [原创] LOG4J使用点滴
jameszhang



CJSDN高级会员


发贴: 1594
积分: 111
于 2004-11-18 08:13 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
把日志写入文件

先配置log4j.inf文件

log4j.rootLogger=debug,R

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=.\\system.log

log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}(%t)] %-5p %c -%m%n
#log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}] %-5p %-x %X{user} ---- %m%n


在主程序入口加静态属性

static org.apache.log4j.Logger log = org.apache.log4j.Logger.getRootLogger();


在构造方法中执行

 org.apache.log4j.PropertyConfigurator.configure("log4j.inf");


在需要输出日志的地方填加

log.info("LOG4J测试程序启动");

可以在程序目录下找到system.log内容:
[2003-11-16 16:45:06,218(AWT-EventQueue-0)] INFO  root - LOG4J测试程序启动


把日志写入文件同时写入自己的界面上

例如写到JTextArea 上

首先:
   写一个Appender类

package log4j;

import org.apache.log4j.*;
import org.apache.log4j.spi.*;

public class JTextAreaAppender extends AppenderSkeleton
{
javax.swing.JTextArea jText = null;

public JTextAreaAppender(Layout layout, javax.swing.JTextArea jText)
{
this.layout = layout;
this.jText = jText;
}

public JTextAreaAppender(javax.swing.JTextArea jText)
{
this.layout = new org.apache.log4j.PatternLayout("%p [%t] %c - %m%n");
this.jText = jText;
}

public void setJText(javax.swing.JTextArea jText)
{
this.jText = jText;
}

protected void append(LoggingEvent event)
{
if(this.jText == null)
return ;
this.subAppend(event);
}
public boolean requiresLayout()
{
return true;
}

public synchronized void close()
{
if (this.closed)
{
return;
}
this.closed = true;

}

public void subAppend(LoggingEvent event)
{
synchronized(jText)
{
this.jText.append(this.layout.format(event));
}

}

}


在主程序入口加静态属性

static org.apache.log4j.Logger log = org.apache.log4j.Logger.getRootLogger();


在构造方法中
org.apache.log4j.PropertyConfigurator.configure("log4j.inf");

后加
log.addAppender(new log4j.JTextAreaAppender(this.jTextArea1));


在需要输出日志的地方填加

log.info("LOG4J测试程序启动");

执行程序就可以看到了

使用中,文件感觉有置后


jameszhang edited on 2004-11-18 08:17

"First they ignore u, then they laugh at u, then they fight u, then u will win

Mahatma Gandhi"


话题树型展开
人气 标题 作者 字数 发贴时间
10170 [原创] LOG4J使用点滴 jameszhang 2355 2004-11-18 08:13
7823 Re:[原创] LOG4J使用点滴 leowu2000 12 2004-11-18 10:00

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923