📄 filepersistencelogobserver.java.svn-base
字号:
package com.infobank.superchannel.observer.implementation;import java.util.List;import org.apache.log4j.Logger;import com.infobank.superchannel.daemon.GenericDaemon;import com.infobank.superchannel.daemon.databasecache.DatabaseCacheDaemon;import com.infobank.superchannel.daemon.messagelauncher.MessageLauncherDaemon;import com.infobank.superchannel.observer.LogObserver;import com.infobank.superchannel.pojo.GenericLog;import com.infobank.superchannel.util.DaemonConfiguration;import com.infobank.superchannel.util.EmergentAlert;public class FilePersistenceLogObserver implements LogObserver { private Logger logger=null; private String fatalAlert=null; private String errorAlert=null; private String warnAlert=null; public FilePersistenceLogObserver(GenericDaemon daemon){ logger=Logger.getLogger(daemon.getClass()); String daemonType=null; if(daemon instanceof DatabaseCacheDaemon){ daemonType="DatabaseCache"; } else{ if(daemon instanceof MessageLauncherDaemon){ daemonType="MessageLauncher"; } else throw new RuntimeException("invalid daemon type"); } DaemonConfiguration config=DaemonConfiguration.getInstance(); StringBuilder sb=new StringBuilder(); sb.append("/daemon[@type='"); sb.append(daemonType); sb.append("']/observer[@type='LogObserver']/"); String basePath=sb.toString(); sb=new StringBuilder(); sb.append(basePath); sb.append("alerts/alert[@level='fatal']"); fatalAlert=config.getString(sb.toString()); sb=new StringBuilder(); sb.append(basePath); sb.append("alerts/alert[@level='error']"); errorAlert=config.getString(sb.toString()); sb=new StringBuilder(); sb.append(basePath); sb.append("alerts/alert[@level='warn']"); warnAlert=config.getString(sb.toString()); } private void sendAlert(String url){ if(url!=null) new EmergentAlert(url); } /** * 记载调试日志信息 * @param log 调试日志信息 */ public void debug(String log) { logger.debug(log); } /** * 记载错误信息 * @param log 错误信息 */ public void error(String log) { logger.error(log); sendAlert(errorAlert); } /** * 记载致命错误信息 * @param log 致命错误信息 */ public void fatal(String log) { logger.fatal(log); sendAlert(fatalAlert); } /** * 记载一般日志信息 * @param log 一般日志信息 */ public void info(String log) { logger.info(log); } /** * 取得自上次调用此方发以后新增的所有日志信息 * @return 自上次调用此方发以后新增的所有日志信息 * @deprecated */ public List<GenericLog> getGenericLog() { return null; } public void warn(String log) { logger.warn(log); sendAlert(warnAlert); } public void debug(Exception ex) { logger.debug(ex,ex); } public void error(Exception ex) { logger.error(ex,ex); sendAlert(errorAlert); } public void fatal(Exception ex) { logger.fatal(ex,ex); sendAlert(fatalAlert); } public void info(Exception ex) { logger.info(ex,ex); } public void warn(Exception ex) { logger.warn(ex,ex); sendAlert(warnAlert); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -