LogApplication.java 2.55 KB
package com.uccc.log;

import com.uccc.log.interceptor.AuthenticationInterceptor;
import com.uccc.pretty.config.CommonLoggingFilter;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
 * @author :bert
 * @date :2021-09-09 09:59.
 */
@SpringBootApplication
@EnableAsync
@MapperScan("com.uccc.log.mapper")
@ComponentScan({"com.uccc.log"})
public class LogApplication extends WebMvcConfigurerAdapter {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new AuthenticationInterceptor()).
                addPathPatterns("/sys_log/**");
//            excludePathPatterns("/permission/**");
    }

    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setConnectTimeout(1000);
        requestFactory.setReadTimeout(500);
        RestTemplate restTemplate = new RestTemplate(requestFactory);
        return  restTemplate;
    }

    /**
     * Description:日志统一打印
     * Created by bert on 21/09/10 10:16
     * Author: bert
     */
    @Bean
    public FilterRegistrationBean loggingFilterRegistration() {
        long ignoreBodySize = 10 * 1024 * 1024; //body日志控制10MB以内
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setName("logging");
        CommonLoggingFilter loggingFilter = new CommonLoggingFilter();
        registrationBean.setFilter(loggingFilter);
        registrationBean.setOrder(1);
        registrationBean.addInitParameter("totalTime","true");
        registrationBean.addInitParameter("mergeRequestAndResponse", "true");//合并request和response信息
        registrationBean.addInitParameter("ignoreBodySize", String.valueOf(ignoreBodySize));
        return registrationBean;
    }
    public static void main(String[] args) {
        SpringApplication.run(LogApplication.class,args);
    }
}