sourcecode

스프링 부트 Tomcat 액세스 로그

copyscript 2023. 2. 11. 09:30
반응형

스프링 부트 Tomcat 액세스 로그

spring boot reference 매뉴얼에 따라 Tomcat 액세스 로그를 활성화했습니다.하지만 제대로 작동하지 않습니다.유효하게 하면, 액세스 로그 파일이 작성되어 그날의 요구가 로그에 기록되어 있는 것을 알 수 있습니다.하지만 다음 날 시작해도 새 파일이 보이지 않습니다.21시에 로깅을 시작했습니다.셋째 날 2시부터 로깅을 시작했습니다.4일째부터는 액세스로그가 생성되지 않습니다.

여기 제가 사용한 물건들이 있습니다.

server.tomcat.access-log-enabled=true
server.tomcat.access-log-pattern=%h %l %u %t "%r" %s %b %D
server.tomcat.basedir=/var/lib/org_name/tracking_server 

tracking_server 폴더 로그 및 작업 폴더가 생성되었습니다.

제가 뭔가 놓친 게 있으면 알려주세요.일반 로깅은 logback.xml에서 지정된 설정에 따라 정상적으로 동작하고 있습니다.

잘 부탁드립니다.

이 설정은 스프링 부트버전 1.2.3으로 동작합니다.풀어주다.단, 현재 버전의 스프링부트를 사용하고 있는 경우 이들 파라미터는 약간 다릅니다.여기를 참조해 주십시오.

server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.
server.tomcat.accesslog.enabled=false # Enable access log.
server.tomcat.accesslog.pattern=common # Format pattern for access logs.

보시는 바와 같이 하이픈(-)이 다릅니다.

또한 이 문서에 따르면 Tomcat 액세스로그 설정에는 다음 파라미터가 포함됩니다.

  • fileDateFormat 입니다.기본값은 yyy-MM-dd 입니다.이는 로그 파일이 매일 변경됨을 의미합니다.yyy-MM-dd로 변경하는 경우.HH, 로그는 매시간 변경됩니다.
  • 회전 가능한기본값은 true 입니다.false로 설정하면 파일만 있는 것으로 알고 있습니다.fileDateFormat 파라미터를 사용하지 않습니다.

단, 내 버전의 스프링부트(1.2.3)에서는RELEASE) 클래스 org.springframework.boot.autoconfigure.web.ServerProperties에는 이러한 속성을 변경할 수 있는 값이 없습니다(Tomcat 하위 클래스).org.apache.catalina.valves를 체크하면AccessLogValve는 다음 속성을 변경할 수 있습니다.

/**
 * Should we rotate our log file? Default is true (like old behavior)
 */
protected boolean rotatable = true;

/**
 * Date format to place in log file name.
 */
protected String fileDateFormat = ".yyyy-MM-dd";

그런 변수들을 가지고 노는 게 좋을 것 같아이 게시물이 당신의 문제를 해결하는 데 도움이 되기를 바랍니다.

언급URL : https://stackoverflow.com/questions/23596157/spring-boot-tomcat-access-logs

반응형