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;
|
||||
|
||||
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.InstallInterceptor;
|
||||
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.core.Ordered;
|
||||
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.SessionLocaleResolver;
|
||||
|
||||
|
@ -108,13 +112,29 @@ public class WebMvcAutoConfiguration implements WebMvcConfigurer {
|
|||
FilterRegistrationBean<CorsFilter> corsFilter() {
|
||||
FilterRegistrationBean<CorsFilter> corsFilter = new FilterRegistrationBean<>();
|
||||
|
||||
corsFilter.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
||||
corsFilter.setOrder(Ordered.HIGHEST_PRECEDENCE + 10);
|
||||
corsFilter.setFilter(new CorsFilter());
|
||||
corsFilter.addUrlPatterns("/api/*");
|
||||
|
||||
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