All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.yqjr.framework.component.advisor.statistics.StatisticsExtension Maven / Gradle / Ivy

/**
 * 
 */
package com.yqjr.framework.component.advisor.statistics;

import org.springframework.stereotype.Component;

import com.yqjr.framework.component.advisor.IExtensionPoint;
import com.yqjr.framework.component.context.ThreadContext;
import com.yqjr.framework.component.log.Logger;

/**
 * ClassName: StatisticsExtension 
* Description: 扩展点-统计服务执行情况
* Create By: admin
* Create Date: 2017年4月20日 上午9:39:48
* Modified By:
* Modified Date:
* Modified Content:
* Version: 1.0
*/ @Component public class StatisticsExtension implements IExtensionPoint { private static final String SERVICE_TIMESTAMP = "framework.service.timestamp"; private Logger logger = Logger.getLogger(); /* * (non-Javadoc) * * @see * com.yqjr.framework.component.advisor.IExtensionPoint#preServiceInvoke( * java.lang.String, java.lang.String, java.lang.Object[]) */ @Override public void preServiceInvoke(String className, String methodName, Object[] args) { ThreadContext.getInstance().put(SERVICE_TIMESTAMP, System.currentTimeMillis()); } /* * (non-Javadoc) * * @see * com.yqjr.framework.component.advisor.IExtensionPoint#afterServiceInvoke( * java.lang.String, java.lang.String, java.lang.Object) */ @Override public void afterServiceInvoke(String className, String methodName, Object res) { long begin = ThreadContext.getInstance().getLong(SERVICE_TIMESTAMP); String cost = String.valueOf(System.currentTimeMillis() - begin); // TODO 统计信息暂时写日志,以后可以保存数据库或推送监控平台 logger.debug(String.format("服务调用%s类的%s方法成功,执行时间:%s毫秒", className, methodName, cost)); } /* * (non-Javadoc) * * @see * com.yqjr.framework.component.advisor.IExtensionPoint#preThrowException( * java.lang.String, java.lang.String, java.lang.Exception) */ @Override public void preThrowException(String className, String methodName, Throwable e) { long begin = ThreadContext.getInstance().getLong(SERVICE_TIMESTAMP); String cost = String.valueOf(System.currentTimeMillis() - begin); // TODO 统计信息暂时写日志,以后可以保存数据库或推送监控平台 logger.error("服务调用异常", e); logger.debug(String.format("服务调用%s类的%s方法失败,执行时间:%s毫秒", className, methodName, cost)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy