永发信息网

springmvc怎么配置日志记录

答案:2  悬赏:70  手机版
解决时间 2021-02-19 21:42
springmvc怎么配置日志记录
最佳答案
在项目开发中往往需要记录一些用户操作的系统日志到数据库,而不仅仅是记录在文件中或者log4j上。
第一种是最简单最原始也是最繁琐最笨的办法:即每个需要记录的操作入口方法中去调用新增日志的接口。
第二种是采用spring的拦截器进行方法拦截:
建立一个拦截器:




新建一个拦截器的class继承spring web的HandlerInterceptorAdapter类,在spring4中该类有四个方法可以进行重写,如:
preHandle:它会在处理方法之前执行,可以用来做一些编码处理、安全限制之类的操作。
postHandle:它是在方法执行后开始返回前执行,可以进行日志记录、修改ModelView之类的操作。
afterCompletion:最后执行,无论出错与否都会执行这个方法,可以用来记录异常信息和一些必要的操作记录。
afterConcurrentHandlingStarted:controller方法异步开始执行时就开始执行这个方法,而postHandle需要等到controller异步执行完成后再执行。
需要注意的是spring的拦截器无法获取处理函数的参数值。
第三种就是采用spring的AOP配置注解进行拦截:
首先在springAOP中的三个概念:advice、pointcut、advisor。
新建一个类,无需任何继承和实现接口,只需要在类上加入注解@Aspect。创建一个切入点的方法,注解@Pointcut,然后在创建一个方法,配置需 要通知的类型,通过JoinPoint相关类来获取参数值和请求的内容。具体的切入点和通知类型的表达式需参考springAOP相关的表达式语法。然后 需要在配置文件配置,即aspectj动态代理。
具体的日志记录实现、可以采用匹配请求地址的方法进行记录(因为查询操作可能不需要记录),哪些需要记录的请求可以通过配置文件来配置,也可以通过注解来实现。
或者是通过自定义注解来实现日志拦截,通过Pointcut拦截具体的注解而达到按需记录日志的功能。
全部回答
你是想直接把springmvc当作一个简单的servlet来使用吗? 就是去的request,和response直接自己赋值和自己使用response来决定是转发还是重定向? 那么完全可以在注解开发的方法中,直接将方法的返回值定义为void(即不返回任何值),然后参数中注入request和response即可!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我们到此为止 韩语怎么说?
用了一个无线路由器连接笔记本又分出来一根网
光明幼儿园我想知道这个在什么地方
滴滴刷脸连续好几天未通过,怎么解决?我驾驶
常州海关驻出口加工区办事处这个地址在什么地
在一个普通的锥形瓶中,加入含有酵母菌的葡萄
花台地址在什么地方,想过去办事
中瑞阿胶红素铁蛋白质粉价格
无线鼠标在打开某些网页时会很卡,为什么?
我国继续采取措施促进城乡居民消费,发挥消费
小小超市兴海家园连锁店这个地址在什么地方,
班上要举行班干部竟选了,要求每个竞选了,要求
windows10安装苹果大师需要的Bonjour64位总是
宁夏心杞点250枸杞多少钱
金鱼为何烂掉眼睛了?像快要死了,怎么救它?
推荐资讯
现在我终于明白了,一切错在我,错在我给你自由
宣达印务广告地址在什么地方,想过去办事
蓝牙小音箱坏了改成aux播放
报到证和转正定级问题。
丽江市人民医院-中医楼在哪里啊,我有事要去
义乌佛堂的画家丁林的画值不值钱吗?
四门郭家这个地址在什么地方,我要处理点事
求咕噜碳,96猫,gero的二次元人设的各种无水
FMEA ;S,O,D,RPN的英文是什么
【喝酒的学问】急求喝酒的学问喝酒有什么讲究
十足梅湖店在哪里啊,我有事要去这个地方
安徽地区中国移动流量能转赠?如果可以,怎么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?