Log4j详细介绍(六)----自定义输出
2013-06-07 21:25
337 查看
Log4j支持自定义输出。所有输出都是实现自Appender接口。一般来说,自定义输出只需要继承AppenderSkeleton类,并实现几个方法就可以了。
看一个自定义输出的例子。CountingConsoleAppender跟控制台输出类似,不同的是会统计日志输出的次数。当输出次数超过预定的值时,会做相应的业务处理(这里为打印一行提示信息),并停止输出,代码如下。
其中最大输出次数可以在log4j.properties中配置。配置代码如下:
设定输出次数为10.当输出超过10次后,该自定义Appender会输出下面的信息,并停止输出:
看一个自定义输出的例子。CountingConsoleAppender跟控制台输出类似,不同的是会统计日志输出的次数。当输出次数超过预定的值时,会做相应的业务处理(这里为打印一行提示信息),并停止输出,代码如下。
import org.apache.log4j.AppenderSkeleton; import org.apache.log4j.spi.ErrorCode; import org.apache.log4j.spi.LoggingEvent; public class CountingConsoleAppender extends AppenderSkeleton { int count = 0;// 记录日志的次数 int limit = 16;// 权限次数 public void setLimit(int limit) {// setter方法 this.limit = limit; } public int getLimit() {// getter方法 return limit; } @Override public void close() { if (this.closed)// 如果被关掉了 return; this.closed = true; } @Override public boolean requiresLayout() {// 需要使用布局 return true; } @Override protected void append(LoggingEvent event) { if (this.layout == null) { // 没有设置出布局 errorHandler.error("没有设置[" + name + "]输出布局.", null, ErrorCode.MISSING_LAYOUT); return; } if (count >= limit) { errorHandler.error("输出次数[" + limit + "]达到了[" + getName() + "]的极限", null, ErrorCode.WRITE_FAILURE); return; } System.out.println(this.layout.format(event)); if (layout.ignoresThrowable()) { String[] t = event.getThrowableStrRep(); if (t != null) { int len = t.length; for (int i = 0; i < len; i++) { System.out.println(t[i]); } } } count++;// 继续下次日志 } }
其中最大输出次数可以在log4j.properties中配置。配置代码如下:
log4j.rootLogger= DEBUG, COUNTING log4j.appender.COUNTING=com.log4j.test.CountingConsoleAppender #输出10次停止 log4j.appender.COUNTING.limit=10 log4j.appender.COUNTING.layout=org.apache.log4j.PatternLayout log4j.appender.COUTIING.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n
设定输出次数为10.当输出超过10次后,该自定义Appender会输出下面的信息,并停止输出:
log4j:ERROR 输出次数[10]达到了[COUNTING]的极限
相关文章推荐
- Log4j详细介绍(五)----输出地Appender
- Log4j详细介绍(五)----输出地Appender
- log4j输出多个自定义日志文件,动态配置路径
- log4j自定义html输出日志
- log4j详细介绍
- Apache Log4j使用详细介绍
- Log4j日志输出详细
- log4j输出多个自定义日志文件
- android 自定义控件 自定义属性详细介绍
- log4j输出多个自定义日志文件,动态配置路径
- Log4j自定义Appender介绍
- log4j输出多个自定义日志文件,动态配置路径
- asp.net 请求输入到输出的全过程及httpHandler和httpModuler详细介绍
- log4j定向输送到文件并且详细输出(sql)
- iOS,UITableView详细介绍之自定义Cell(二)
- log4j详细的常用配置说明介绍
- 转一篇关于Log4j的介绍文章,很详细,留待以后查阅
- android UI 自定义View 的详细介绍
- HTML5的自定义属性data-*详细介绍和JS操作实例