mirror of https://github.com/halo-dev/halo
Add LogFilter for development
parent
7e267000bf
commit
69d1b1575e
|
@ -1,6 +1,7 @@
|
||||||
package cc.ryanc.halo.config;
|
package cc.ryanc.halo.config;
|
||||||
|
|
||||||
import cc.ryanc.halo.filter.CorsFilter;
|
import cc.ryanc.halo.filter.CorsFilter;
|
||||||
|
import cc.ryanc.halo.filter.LogFilter;
|
||||||
import cc.ryanc.halo.web.interceptor.ApiInterceptor;
|
import cc.ryanc.halo.web.interceptor.ApiInterceptor;
|
||||||
import cc.ryanc.halo.web.interceptor.InstallInterceptor;
|
import cc.ryanc.halo.web.interceptor.InstallInterceptor;
|
||||||
import cc.ryanc.halo.web.interceptor.LocaleInterceptor;
|
import cc.ryanc.halo.web.interceptor.LocaleInterceptor;
|
||||||
|
@ -14,7 +15,10 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.PropertySource;
|
import org.springframework.context.annotation.PropertySource;
|
||||||
import org.springframework.core.Ordered;
|
import org.springframework.core.Ordered;
|
||||||
import org.springframework.web.servlet.LocaleResolver;
|
import org.springframework.web.servlet.LocaleResolver;
|
||||||
import org.springframework.web.servlet.config.annotation.*;
|
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
|
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
import org.springframework.web.servlet.i18n.LocaleChangeInterceptor;
|
||||||
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
import org.springframework.web.servlet.i18n.SessionLocaleResolver;
|
||||||
|
|
||||||
|
@ -108,13 +112,29 @@ public class WebMvcAutoConfiguration implements WebMvcConfigurer {
|
||||||
FilterRegistrationBean<CorsFilter> corsFilter() {
|
FilterRegistrationBean<CorsFilter> corsFilter() {
|
||||||
FilterRegistrationBean<CorsFilter> corsFilter = new FilterRegistrationBean<>();
|
FilterRegistrationBean<CorsFilter> corsFilter = new FilterRegistrationBean<>();
|
||||||
|
|
||||||
corsFilter.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
corsFilter.setOrder(Ordered.HIGHEST_PRECEDENCE + 10);
|
||||||
corsFilter.setFilter(new CorsFilter());
|
corsFilter.setFilter(new CorsFilter());
|
||||||
corsFilter.addUrlPatterns("/api/*");
|
corsFilter.addUrlPatterns("/api/*");
|
||||||
|
|
||||||
return corsFilter;
|
return corsFilter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a LogFilter.
|
||||||
|
*
|
||||||
|
* @return Log filter registration bean
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
FilterRegistrationBean<LogFilter> logFilter() {
|
||||||
|
FilterRegistrationBean<LogFilter> logFilter = new FilterRegistrationBean<>();
|
||||||
|
|
||||||
|
logFilter.setOrder(Ordered.HIGHEST_PRECEDENCE + 9);
|
||||||
|
logFilter.setFilter(new LogFilter());
|
||||||
|
logFilter.addUrlPatterns("/api/*", "/admin/*");
|
||||||
|
|
||||||
|
return logFilter;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 国际化设置
|
* 国际化设置
|
||||||
*
|
*
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
package cc.ryanc.halo.filter;
|
||||||
|
|
||||||
|
import cc.ryanc.halo.logging.Logger;
|
||||||
|
import cn.hutool.extra.servlet.ServletUtil;
|
||||||
|
import org.springframework.web.filter.OncePerRequestFilter;
|
||||||
|
|
||||||
|
import javax.servlet.FilterChain;
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filter for logging.
|
||||||
|
*
|
||||||
|
* @author johnniang
|
||||||
|
*/
|
||||||
|
public class LogFilter extends OncePerRequestFilter {
|
||||||
|
|
||||||
|
private Logger logger = Logger.getLogger(getClass());
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
|
||||||
|
|
||||||
|
String remoteAddr = ServletUtil.getClientIP(request);
|
||||||
|
|
||||||
|
logger.debug("");
|
||||||
|
logger.debug("Starting url: [{}], method: [{}], ip: [{}]", request.getRequestURL(), request.getMethod(), remoteAddr);
|
||||||
|
|
||||||
|
// Set start time
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
|
|
||||||
|
// Do filter
|
||||||
|
filterChain.doFilter(request, response);
|
||||||
|
|
||||||
|
logger.debug("Ending url: [{}], method: [{}], ip: [{}], status: [{}], usage: [{}] ms", request.getRequestURL(), request.getMethod(), remoteAddr, response.getStatus(), (System.currentTimeMillis() - startTime));
|
||||||
|
logger.debug("");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue