
com.sghd.logging.RecordService Maven / Gradle / Ivy
The newest version!
package com.sghd.logging;
import java.util.List;
import java.util.Queue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.LinkedBlockingQueue;
import org.apache.log4j.Logger;
/**
* 日志记录工具类
*/
public class RecordService {
private Queue listeners = new LinkedBlockingQueue();
/**
* 设置服务器ID转换器
*/
public void setServerIdConverter(ServerIdConverter serverIdConverter) {
PathUtils.setServerIdConverter(serverIdConverter);
}
private ConcurrentMap DISABLE_LOGGEER = new ConcurrentHashMap<>();
/**
* 设置日志是否启用
* @param logger 日志记录器
* @param type 类型
* @param enable 是否启用
*/
public void setDisbaled(String logger, String type, boolean enable) {
if (enable) {
DISABLE_LOGGEER.remove(logger + ":" + type);
} else {
DISABLE_LOGGEER.put(logger + ":" + type, false);
}
}
/**
* 日志是否启用
* @param logger 日志记录器
* @param type 类型
* @return 是否启用
*/
public boolean isDisbaled(String logger, String type) {
Boolean flag = DISABLE_LOGGEER.get(logger + ":" + type);
return flag != null && flag;
}
/**
* 记录日志
* @param loggerName 日志记录器
* @param recordName 类型
* @param cron cron表达式
* @param record 记录对象
*/
public void log(String loggerName, String recordName, String cron, Record record) {
if (isDisbaled(loggerName, recordName)) {
return;
}
Logger logger = Logger.getLogger(loggerName);
logger.info(new Object[] { recordName, cron, record });
// 监听器
for (RecordListener listener : listeners) {
listener.onRecord(recordName, record);
}
}
public void setListeners(List listeners) {
this.listeners = new LinkedBlockingQueue<>(listeners);
}
public void addListeners(RecordListener listener){
this.listeners.add(listener);
}
public void removeListeners(RecordListener listener){
this.listeners.remove(listener);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy