spring boot集成aop实现日志记录
1、pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2、切点定义
/**
* 利用切面记录线程调用监控中心记录
*
*/
//将bean注入spring容器
@Component
//开启aop注解
@Aspect
public class ThreadCallRecoedAop {
public Logger logger = LoggerFactory
.getLogger(ThreadCallRecoedAop.class);// 输出日志
@Autowired
private RecordLogAsync recordLogAsync;
@Pointcut("execution(* com.sigmatrix.thread.controller.ReceiveThreadStateController.receive(..))")//切入点描
public void controllerLog(){}
/**
* 记录线程调用监控中心日志
* 在方法执行之前进行切面切入
*/
@Before("controllerLog()")
public void recordLog(JoinPoint pjp){
Object[] args;
try{
logger.info("-------------异步记录日志开始");
//获取参数
args = pjp.getArgs();
ThreadStateRecord threadStateRecord=(ThreadStateRecord) args[0];
//进行异步日志记录,防止阻塞
recordLogAsync.insertThreadCallLog(threadStateRecord);
logger.info("-------------异步记录日志成功");
}catch(Throwable te){
logger.error("异步记录日志异常信息为:",te);
}
}
}
/**
* 异步记录日志入库
*
*/
@Component
public class RecordLogAsync {
@Autowired
private ThreadCallRecordService threadCallRecordService;
/**
* 记录线程调用监控中心日志
*
*/
@Async
public void insertThreadCallLog(ThreadStateRecord threadStateRecord) throws Throwable{
ThreadCallRecord threadCallRecord =new ThreadCallRecord();
//记录时间
threadCallRecord.setThreadCallTime(new Date());
//线程名字
threadCallRecord.setThreadName(threadStateRecord.getThreadName());
//调用监控中心线程配置信息
threadCallRecord.setCallMeaaage(threadStateRecord.getThreadCallMessage());
//线程状态
threadCallRecord.setThreadState(threadStateRecord.getThreadMessage());
threadCallRecordService.insertSelective(threadCallRecord);
threadCallRecord =null;
}
}
3、开启异步Async注解使用

spring boot集成aop实现日志记录的更多相关文章
- Spring Boot 使用 Aop 实现日志全局拦截
前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Sprin ...
- Spring Boot 入门(五):集成 AOP 进行日志管理
本篇文章是接着 Spring boot 入门(四):集成 Shiro 实现登陆认证和权限管理写的,按照前面几篇博客的教程,可以搭建一个简单的项目,主要包含了 Pagehelper+MyBatis 分页 ...
- Spring AOP 完成日志记录
Spring AOP 完成日志记录 http://hotstrong.iteye.com/blog/1330046
- Spring AOP进行日志记录
在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...
- Spring AOP进行日志记录,管理
在java开发中日志的管理有很多种.我一般会使用过滤器,或者是Spring的拦截器进行日志的处理.如果是用过滤器比较简单,只要对所有的.do提交进行拦截,然后获取action的提交路径就可以获取对每个 ...
- Spring Boot 集成日志logback + 控制台打印SQL
一: 控制台打印SQL application.properties中添加如下即可在控制台打印sql logging.level.com.fx.fxxt.mapper=debug 二:日志 因为Spr ...
- spring boot 集成logstash 日志
1.logstash 插件配置 logstash下config文件夹下添加 test.conf 文件内容: input{ tcp { mode => "server" hos ...
- 81. Spring Boot集成JSP疑问【从零开始学Spring Boot】
[原创文章,转载请注明出处] 针对文章: ()Spring Boot 添加JSP支持[从零开始学Spring Boot] 有网友提了这么一些疑问: 1.Spring Boot使用jsp时,仍旧可以打成 ...
- (37)Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】
[本文章是否对你有用以及是否有好的建议,请留言] 写后感:博主写这么一系列文章也不容易啊,请评论支持下. 如果看过我之前(35)的文章这一篇的文章就会很简单,没有什么挑战性了. 那么我们先说说这一篇文 ...
随机推荐
- log4j2使用入门(一)
log4j2是log4j的一个升级版,与log4j1相比进行了很大的改善,同时也修复了一些logback的架构上的问题.所以是目前应用开发的首选的日志器(下载位置:http://apache.faye ...
- spark DataFrame的创建几种方式和存储
一. 从Spark2.0以上版本开始,Spark使用全新的SparkSession接口替代Spark1.6中的SQLContext及HiveContext接口来实现其对数据加载.转换.处理等功能.Sp ...
- String与StringBuffer
转载于:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616330.htm l火之光 StringBuffer类和String一样,也用来 ...
- 20172328 2018-2019《Java软件结构与数据结构》第九周学习总结
20172328 2018-2019<Java软件结构与数据结构>第九周学习总结 概述 Generalization 本周学习了无向图.有向图.带权图.常用的图算法.图的实现策略. 教材学 ...
- Windows Server 2012设置VMWare以服务方式启动(注销后也可以运行,开机也可以自动运行)
场景:要用一台服务器(Windows Server 2012),加装了一张双口的千兆网卡,安装一个虚拟机,使用爱快在虚拟机里当做软路由. - 那么问题来了,我这台是只能远程的,如果软路由没启动,怎么办 ...
- centos如何设置固定IP
### centos6.5版本 编辑ifcfg-eth0 vi /etc/sysconfig/network-scripts/ifcfg-eth0 参照下面代码修改自己的配置 ############ ...
- c#常用数值范围汇总
short.MaxValue 32767 short.MinValue -32768 int.MaxValue 2147483647 int.MinValue -2147483648 long.Max ...
- Codechef July Challenge 2018 : Subway Ride
传送门 首先(想了很久之后)注意到一个性质:同一条边有多种颜色的话保留3种就可以了,这是因为假如最优解要求当前位置与相邻两条边都不相同,那么只要有3条边,就肯定可以满足这一点. 完事就做一个nlogn ...
- BOM 浏览器对象模型_当前窗口的浏览历史 history 对象
当前窗口的浏览历史 window.history 对象 保存了当前窗口访问过的所有页面网址 由于安全原因,浏览器不允许脚本读取这些地址,但是允许在地址之间导航 history.back() 相当于 h ...
- NoSuchMethodError 问题
最近maven升级到gradle后,总是报NoSuchMethod error.然后 ,报错的类确实是有这个方法,一切看起来都没有问题.那么运行时jvm到底加载的哪里的类呢?有没有相关的命令可以查询, ...