您的位置:首页 > 移动开发

Log4j学习自定义Appender

2012-09-23 11:16 330 查看
说明: Log4j支持自定义的输出。所有的输出都实现自Appender接口。一般来说,自定义输出只需要继承AppenderSkeleton类,并实现几个方法就可以了。

1。代码如下:

package com.logging.log4j;

import org.apache.log4j.AppenderSkeleton;

import org.apache.log4j.spi.ErrorCode;

import org.apache.log4j.spi.LoggingEvent;

public class CountConsoleAppender extends AppenderSkeleton {

private int limit;

private int count;

@Override

protected void append(LoggingEvent e) {

// TODO Auto-generated method stub

if(layout == null){

errorHandler.error("没有设置"+name+"]的输出布局", null, ErrorCode.MISSING_LAYOUT);

return;

}

if(count > limit){

errorHandler.error("输出次数"+count+"超过了"+getName()+"的限制"+limit, null, ErrorCode.WRITE_FAILURE);

return;

}

System.out.println("_______________"+this.layout.format(e));

if(!layout.ignoresThrowable()){

String[] t = e.getThrowableStrRep();

if(t != null){

for(String s:t){

System.out.println("*******"+s);

}

}

}

count++;

}

@Override

public void close() {

// TODO Auto-generated method stub

if(this.closed){

return;

}

this.closed = true;

}

@Override

public boolean requiresLayout() {

// TODO Auto-generated method stub

return true;

}

public int getLimit() {

return limit;

}

public void setLimit(int limit) {

this.limit = limit;

}

public int getCount() {

return count;

}

public void setCount(int count) {

this.count = count;

}

}

log4j.properties配置文件如下:

log4j.category.com.logging.log4j=INFO,COUNTING

log4j.appender.COUNTING=com.logging.log4j.CountConsoleAppender

log4j.appender.COUNTING.limit=2

log4j.appender.COUNTING.layout=org.apache.log4j.PatternLayout

log4j.appender.DATABASE.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%C]-[%p] %m%n
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: