아파치 웹서버 조건에 따라 다른 로그 파일 사용하기 - mod_setenvif
apache httpd web server 는 보통 하나의 log file만 사용 하기 마련이다.
그러다 보니 하나의 로그 파일에 이미지 파일, css, .js 와 업무 로직(.php, jsp 등)이 혼재되므로 용량도 커지고 필요한 내용을 찾기가 번거롭다.
아파치 모듈중 mod_setenvif 를 사용하면 조건에 따른 환경 변수를 설정할 수 있으며 이를 이용하여 조건에 따라 로그 파일을 분리할 수 있다.
<VirtualHost *:80> ServerName example.com DocumentRoot "/var/www/html/" ## 이미지 파일일 경우 imagelog 라는 환경 변수 설정 SetEnvIf Request_URI \.(gif|jpe?g|png)$ imagelog ErrorLog logs/lesstif-error_log # imagelog 환경 변수가 설정되지 않았을 경우 일반 접근 로그 파일에 기록 CustomLog logs/lesstif-acces_log common env=!imagelog # imagelog 환경 변수가 설정됐을 경우 별도의 접근 로그 파일에 기록 CustomLog logs/lesstif-acces_log-image common env=imagelog </VirtualHost>
위와 같이 설정하고 아파치 웹서버를 재구동하면 확장자가 이미지인 파일들의 접근 이력은 lesstif-acces_log-image 에 저장이 된다.