SpringBoot用SpringAOP实现页面日志访问功能

每一个页面写请求日志太麻烦了,用AOP很方便的实现日志记录功能


@Aspect
@Component
public class LogAspect {
    private final static Logger LOGGER = LoggerFactory.getLogger(LogAspect.class);

    @Pointcut("execution(public * com.bao.cms.controller..*.*(..))")
    public void controllerMethod() {
    }
    @Before("controllerMethod()")
    public void LogRequestInfo(JoinPoint joinPoint) throws Exception {

        ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = attributes.getRequest();
        StringBuffer requestLog = new StringBuffer();
        requestLog.append("request:")
                .append("URL = {" + request.getRequestURI() + "},\t")
                .append("HTTP_METHOD = {" + request.getMethod() + "},\t")
                .append("IP = {" + request.getRemoteAddr() + "},\t")
                .append("CLASS_METHOD = {" + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName() + "},\t");

        if(joinPoint.getArgs().length == 0) {
            requestLog.append("ARGS = {} ");
        } else {
            requestLog.append("ARGS = " + new ObjectMapper().setSerializationInclusion(JsonInclude.Include.NON_NULL)
                    .writeValueAsString(joinPoint.getArgs()[0]) + "");
        }

        LOGGER.info(requestLog.toString());
    }

}

参考

https://www.cnblogs.com/wangshen31/p/9379197.html

https://blog.csdn.net/qq_35206261/article/details/81945618

原文地址:https://www.cnblogs.com/Guroer/p/11184849.html

时间: 2024-11-02 22:57:06

SpringBoot用SpringAOP实现页面日志访问功能的相关文章

springboot templates目录下的页面文件访问不到 static 目录下的 jq 文件

springboot项目结构中,页面(eg:.ftl )放在 templates 目录下,静态文件 (eg : .js) 放在 static 目录下, 但是实际操作中发现 controller 访问到 ftl页面后, 找不到引用 static 目录中的 jq 文件 然后开始了尴尬的一个早上... 如果你遇到了这个问题,你首先要想到要把 springboot 中访问静态资源的路径映射到 static 目录下, 对资源访问做一个映射,然后去百度吧... 在 application.propertie

WEB页面日志集中审计

一.日志审计基本结构图. 二.构建环境:操作系统采用CentOS 6.5 x86_64 操作系统,构建rsyslog + loganalyzer,日志集中存储在数据库服务器. 运维人员的排错很多都是靠分析日志来解决问题的,但是日志过于分散会耽误排错时间,对于线上的服务器要尽快的查找问题,及时给出解决方案.当面临群集环境时候,很可能几十台服务器一组群集,排错就会相当痛苦,这时候就需要把日志集中化管理,不仅能解决磁盘I/O能力,还可以通过WEB应用页面来直观的显示出错位置.如果有条件的话,也可以做日

Asp.Net MVC页面静态化功能实现二:用递归算法来实现

上一篇提到采用IHttpModule来实现当用户访问网站的时候,通过重新定义Response.Filter来实现将返回给客户端的html代码保存,以便用户下一次访问是直接访问静态页面. Asp.Net MVC页面静态化功能实现一:利用IHttpModule,摒弃ResultFilter 后来想到可以通过WebRequest获取html代码,然后采用递归算法来实现.基本实现思路如下: 通过WebRequest获取超链接地址返回的html代码,并保存:通过正则表达式匹配html代码中所有的超链接hr

HAproxy增加日志记录功能和自定义日志输出内容、格式

一.增加haproxy日志记录功能 1.1 由于数据分析的需要,我们必须打开haproxy日志,记录相关信息. 在配置前,我们先来了解一下日志的level:local0-local7 16-23保留为本地使用 emerg 0 系统不可用     alert 1 必须马上采取行动的事件     crit 2 关键的事件     err 3 错误事件     warning 4 警告事件     notice 5 普通但重要的事件     info 6 有用的信息     debug 7 调试信息

页面在线访问人数统计&&在线登录人数统计一

一.页面在线访问人数统计 OnlineSessionListener监听器(实现HttpSessionListener)接口来实现页面在线访问人数统计,当有用户访问到页面就会创建一个session,此时会触发public   void   sessionCreated(HttpSessionEvent   se)方法,如果session失效,此时会触发public   void   sessionDestroyed(HttpSessionEvent   se)方法.在此方法里我们用OnlineL

Spring Boot入门(12)实现页面访问量统计功能

??在日常的网站使用中,经常会碰到页面的访问量(或者访问者人数)统计.那么,在Spring Boot中该如何实现这个功能呢? ??我们的想法是比较简单的,那就是将访问量储存在某个地方,要用的时候取出来即可,储存的位置可选择数据库或者其他文件.本例所使用的例子为txt文件,我们将访问量数据记录在D盘的count.txt文件中. ??下面直接开始本次的项目.整个项目的完整结构如下: 我们只需要修改划红线的三个文件,其中build.gradle的代码如下: buildscript { ext { sp

启用yarn日志聚集功能

在yarn-site.xml配置文件中添加如下内容: ##开启日志聚集功能        <property>                <name>yarn.log-aggregation-enable</name>                <value>true</value>        </property>##日志保存7天(单位秒)        <property>                &

通过javascript库JQuery实现页面跳转功能代码

通过javascript库JQuery实现页面跳转功能代码的四段代码实例如下. 实例1: 1 2 3 4 $(function(){ var pn = $("#gotopagenum").val();//#gotopagenum是文本框的id属性 location.href = "NewList.aspx?pagenum="+pn;//location.href实现客户端页面的跳转 }); 实例2: 实现跳转:window.location = 'user!add.

IIS开启伪静态后html静态页面无法访问的解决方法

IIS开启伪静态后,发现原本存在的html静态页面无法访问了,显示的404错误.网上查了下,是因为实现伪静态就是使用 URLRewriter 来映射后缀,会把asp等动态页面映射成html,但是原来存在的html静态页面也被定义的规则映射到其它页面了,所以找不到页面而无法访问. 有一个很简单的方法就是将html页面的后缀名改成htm,或者是把映射的规则改成映射为htm,总之就是把我们的伪静态页面和真正的静态页面分别用html和htm区分开来,但这只是治标不治本的方法. 最好的方法就是修改伪静态规