利用Spring AOP监控方法(二)日志存放位置

来源:互联网 发布:电锯惊魂影评知乎 编辑:程序博客网 时间:2024/06/06 08:55

上篇文章已经介绍了使用SpringAOP监控方法执行过程

方法执行过程加上并发如果生成日志文件的话那增量可想而知,而且用日志文件记录如果需要查找问题需要花费很长时间,所以想到了使用nosql数据库存储

现在较流行的nosql数据库如redis mongodb ssdb,本文采用SSDB

http://ssdb.io/zh_cn/有详细的SSDB介绍。


啥也不说,粘代码

package net.uni.ap.aop;import com.udpwork.ssdb.*;/** *  * 处理内容:链接SSDB驱动类 * @version: 1.0 * @see:net.uni.ap.aop.SSDBUtils.java * @date:2016-1-19 * @author:梅海波 */public class SSDBUtils {private static SSDB ssdb = null;static{try {ssdb = new SSDB("127.0.0.1", 8888);} catch (Exception e) {e.printStackTrace();}}public static void setLogs(String uuid,String time,String logs){try {ssdb.hset(uuid,time, logs);} catch (Exception e) {e.printStackTrace();}}public static void getLogsByUUID(String uuid){try {Response resp = ssdb.hscan(uuid, "", "", 100000);for(int i=1; i<resp.raw.size(); i+=2){//ssdb.hget(uuid, resp.raw.get(i));String s = new String(ssdb.hget(uuid, resp.raw.get(i)),"GBK");System.out.println(s);}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args){try {getLogsByUUID("d87065b5-cebd-4234-951e-361965245235");//setLogs("85621a5e-7dc4-4451-a1fc-a890451ca52b", System.currentTimeMillis()+"", "IDictInfoBO.getStore() 执行时间:5");//setLogs("85621a5e-7dc4-4451-a1fc-a890451ca52b", System.currentTimeMillis()+"", "IDictInfoBO.getStore() 执行时间:6");//ssdb.set("ad28c722-b710-4370-847c-3bd238b5b11b","aaaaa");//System.out.println(ssdb.get("ad28c722-b710-4370-847c-3bd238b5b11b"));//String a = new String(ssdb.hget("ad28c722-b710-4370-847c-3bd238b5b11b", "ad28c722-b710-4370-847c-3bd238b5b11b"));//Response resp = ssdb.hscan("85621a5e-7dc4-4451-a1fc-a890451ca52b", "", "", 1000);//for(int i=1; i<resp.raw.size(); i+=2){//String s = new String(resp.raw.get(i));//s = new String(ssdb.hget("85621a5e-7dc4-4451-a1fc-a890451ca52b", s));//System.out.println(s);//}//System.out.println(a);} catch (Exception e) {e.printStackTrace();}}}


检索效果

IBaseLoginInfoBO.querySysNoticeList() 执行时间:561SystemService.login("liyan", "c4ca4238a0b923820dcc509a6f75849b", , , ) 执行时间:167IBaseUserRoleBO.checkUserRoleIsEntrusted(10011) 执行时间:14IBaseUserRoleBO.findCorpInfoListByUserId(10011) 执行时间:8IBaseUserRoleBO.getAllUserRoleByUserId(10011) 执行时间:94IBaseUserRoleBO.getAllUserRoleByUser(10011) 执行时间:0IBaseUserRoleBO.getBaseUserRole(1908) 执行时间:12IBaseUserRoleBO.getBaseUserRole(1908) 执行时间:8ICorpInfoBO.getObject(999) 执行时间:24ICorpInfoBO.getAllSubCorp(999) 执行时间:17IFunctionBO.findAllUserFunction(10011) 执行时间:5203IFunctionBO.getRoleFunQueryRangeMap(10011) 执行时间:95IBaseLoginInfoBO.create({"createTime":1453199154340,"id":432125,"logStatus":1,"loginName":"liyan","loginTime":1453199154340,"logoutTime":null,"user":null,"userComputer":"127.0.0.1","userIP":"127.0.0.1","userId":10011,"userMAC":"","userName":"李艳"}) 执行时间:39IDictInfoBO.getStore("QUESTION_TYPE") 执行时间:21IDictInfoBO.getStore("QUESTION_TYPE") 执行时间:18IDictInfoBO.getStore("LOG_LEVEL") 执行时间:13IFunctionBO.getAllFunctionsByUserRoleId(2182, 1908, "/mis") 执行时间:154IFunctionBO.getAllFunctionsByUserRoleId(2008, 1908, "/mis") 执行时间:63IFunctionBO.getAllFunctionsByUserRoleId(2200565, 1908, "/mis") 执行时间:16IFunctionBO.findAllUserFunction(10011) 执行时间:5510CsSuppAddCutDateDetAction.verifySupplierLoginHref() 执行时间:5712CsSuppAddCutDateDetAction.getFlag() 执行时间:0



0 0