request가 들어온 경우, 해당 request와 response를 log로 남기기 위해서,
아래와 같이 logback-access 설정을 통해 logback valve를 설정할 수 있다.
가장 먼저 resources 폴더에 아래와 같이 어떠한 형식으로 log를 남길 것인지에 대해서,
아래와 같이 xml 파일로 설정하도록 한다.
%fullRequest%n%n%fullResponse
이후, 아래와 같이 logback valve를 설정해주면 끝~!!
package org.blog.test.config; import ch.qos.logback.access.tomcat.LogbackValve; import org.apache.catalina.Context; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer; import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatContextCustomizer; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ResourceLoader; @Configuration public class LogbackValveConfig { @Autowired ResourceLoader resourceLoader; @Bean public EmbeddedServletContainerCustomizer embeddedServletContainerCustomizer() { return container -> { if (container instanceof TomcatEmbeddedServletContainerFactory) { ((TomcatEmbeddedServletContainerFactory) container).addContextCustomizers((TomcatContextCustomizer) context -> { LogbackValve valve = new LogbackValve(); valve.setFilename(resourceLoader.getResource(ResourceLoader.CLASSPATH_URL_PREFIX + "logback-access.xml").getFilename()); context.getPipeline().addValve(valve); }); } }; } }
위와 같이 설정한 이후, request가 들어오게 되면 아래와 같이 설정한대로 log가 찍히게 된 것을 확인할 수 있다.
- 출력 결과
GET /server/info HTTP/1.1 host: localhost:8080 connection: keep-alive upgrade-insecure-requests: 1 user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 accept-encoding: gzip, deflate, sdch, br accept-language: ko-KR,ko;q=0.8,en-US;q=0.6,en;q=0.4 HTTP/1.1 200 OK Content-Length: 11 Date: Mon, 29 May 2017 11:39:49 GMT Content-Type: text/html;charset=UTF-8
전체 예제는 아래 링크에서 다운로드 받을 수 있다.
https://gitlab.com/shashaka/logback-valve-project
댓글 없음 :
댓글 쓰기