package com.zzq.pattern.decorator;
public interface Executor {
public void execute(String msg);
}
package com.zzq.pattern.decorator;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.logging.Logger;
public class BufferedLogger {
private static final int SIZE = 100;
private Logger logger = null;
private Map<String, List<String>> map = null;
public BufferedLogger(Logger logger) {
this.logger = logger;
this.map = new HashMap<String, List<String>>();
}
public void fine(String msg) {
process(msg, "fine", new Executor() {
public void execute(String msg) {
logger.fine(msg);
}
});
}
public void info(String msg) {
process(msg, "info", new Executor() {
public void execute(String msg) {
logger.info(msg);
}
});
}
public void severe(String msg) {
process(msg, "severe", new Executor() {
public void execute(String msg) {
logger.severe(msg);
}
});
}
public void warning(String msg) {
process(msg, "warning", new Executor() {
public void execute(String msg) {
logger.warning(msg);
}
});
}
private void process(String msg, String level, Executor executor) {
List<String> buffer = map.get(level);
boolean overflow = checkSize(level);
if (overflow == true) {
for (String content : buffer) {
executor.execute(content);
}
clearBuffer(level);
}
buffer.add(msg);
}
private boolean checkSize(String level) {
List<String> buffer = map.get(level);
if (buffer != null && buffer.size() < SIZE) {
return false;
}
if (buffer == null) {
map.put(level, new ArrayList<String>());
return false;
}
return true;
}
private void clearBuffer(String level) {
List<String> buffer = map.get(level);
if (buffer != null) {
buffer.clear();
}
}
}
分享到:
相关推荐
根据章文嵩(正明)在第三届中国云计算大会上分享的内容,截至2011年5月20日,淘宝在全球Alexa排名为第13位,拥有大约2万台生产服务器,这表明其基础设施规模之庞大。随着业务以每年超过100%的速度快速增长,淘宝...
本软件依据工业和信息化部二00八年五月二十日,工信部规[2008]75号文发布的《通信建设工程概算、预算编制办法》及相关费用定额编制。包含以下最新2008版《通信建设工程预算定额》及中国电信补充定额: a)《通信电源...
本软件依据工业和信息化部二00八年五月二十日,工信部规[2008]75号文发布的《通信建设工程概算、预算编制办法》及相关费用定额编制。包含以下最新2008版《通信建设工程预算定额》及中国电信补充定额: a)《通信电源...
本软件依据工业和信息化部二00八年五月二十日,工信部规[2008]75号文发布的《通信建设工程概算、预算编制办法》及相关费用定额编制。包含以下最新2008版《通信建设工程预算定额》及中国电信补充定额: a)《通信电源...
本软件依据工业和信息化部二00八年五月二十日,工信部规[2008]75号文发布的《通信建设工程概算、预算编制办法》及相关费用定额编制。包含以下最新2008版《通信建设工程预算定额》及中国电信补充定额: a)《通信电源...
RS482-M 03/16/2006 FOR Tongfang 清华同方电脑公司选用的BIOS芯片代号为RS482-M 日期为2006年3月16号 Main Processor : AMD Athlon™64 x2 dual core Processor 3600+ CPU为AMD3600+ 速龙64位双核酷睿技术 Memory ...