package net.tooan.ynpay.log.agent.helper; import com.google.gson.Gson; import net.tooan.ynpay.commons.YnpayJndiConstants; import net.tooan.ynpay.commons.webapp.WebConstants; import net.tooan.ynpay.log.agent.facade.LogFacade; import net.tooan.ynpay.third.jfinal.aop.Interceptor; import net.tooan.ynpay.third.jfinal.core.ActionInvocation; import net.tooan.ynpay.third.jfinal.core.Controller; import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.EJBManager; import net.tooan.ynpay.third.jfinal.ext.interceptor.ejb.RemoteEJB; import net.tooan.ynpay.third.jfinal.log.Logger; import net.tooan.ynpay.user.agent.bean.User; /** * Created with IntelliJ IDEA. * User: Jing * Date: 13-11-6 * Time: 下午10:07 */ public class LogInterceptor implements Interceptor { private static final Logger logger = Logger.getLogger(LogInterceptor.class); @RemoteEJB(mappedName = YnpayJndiConstants.Mongo_Log_Facade_Remote) private LogFacade facade; public LogInterceptor() { super(); EJBManager.manager.setEJB(this); } @Override public void intercept(ActionInvocation ai) { int level = LogHelper.getLevel(ai.getMethod()); if (level >= LogLevel.DEBUG) { Controller controller = ai.getController(); Gson gson = new Gson(); String request = gson.toJson(controller.getParaMap()); String url = ai.getActionKey(); ai.invoke(); String msg = gson.toJson(controller.sysLog()); User user = controller.getAttr("user"); Long userID = null; if (user != null) { userID = user.getId(); } try { facade.save(level, url, request, msg, userID, WebConstants.getIp(controller.getRequest())); } catch (Exception e) { if (logger.isErrorEnabled()) { logger.error(e.getMessage(), e); } } } else { ai.invoke(); } } }