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

上篇文章已经介绍了使用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() 执行时间:561
SystemService.login("liyan", "c4ca4238a0b923820dcc509a6f75849b", , , ) 执行时间:167
IBaseUserRoleBO.checkUserRoleIsEntrusted(10011) 执行时间:14
IBaseUserRoleBO.findCorpInfoListByUserId(10011) 执行时间:8
IBaseUserRoleBO.getAllUserRoleByUserId(10011) 执行时间:94
IBaseUserRoleBO.getAllUserRoleByUser(10011) 执行时间:0
IBaseUserRoleBO.getBaseUserRole(1908) 执行时间:12
IBaseUserRoleBO.getBaseUserRole(1908) 执行时间:8
ICorpInfoBO.getObject(999) 执行时间:24
ICorpInfoBO.getAllSubCorp(999) 执行时间:17
IFunctionBO.findAllUserFunction(10011) 执行时间:5203
IFunctionBO.getRoleFunQueryRangeMap(10011) 执行时间:95
IBaseLoginInfoBO.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":"李艳"}) 执行时间:39
IDictInfoBO.getStore("QUESTION_TYPE") 执行时间:21
IDictInfoBO.getStore("QUESTION_TYPE") 执行时间:18
IDictInfoBO.getStore("LOG_LEVEL") 执行时间:13
IFunctionBO.getAllFunctionsByUserRoleId(2182, 1908, "/mis") 执行时间:154
IFunctionBO.getAllFunctionsByUserRoleId(2008, 1908, "/mis") 执行时间:63
IFunctionBO.getAllFunctionsByUserRoleId(2200565, 1908, "/mis") 执行时间:16
IFunctionBO.findAllUserFunction(10011) 执行时间:5510
CsSuppAddCutDateDetAction.verifySupplierLoginHref() 执行时间:5712
CsSuppAddCutDateDetAction.getFlag() 执行时间:0



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值