RotateLogs
아파치 웹서버의 로그를 1일 단위로 나누어 저장하는 방법
/etc/httpd/conf.d/00-macro.conf
<Macro RotateLogs $domain> LogLevel warn ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/error_log.%Y%m%d 86400 +540" TransferLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/access_log.%Y%m%d 86400 +540" CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/request_log.%Y%m%d 86400 +540" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x [%{SSL_CLIENT_I_DN_CN}x][%{SSL_CLIENT_S_DN_CN}x] \"%r\" %b" </Macro> <Macro DbgRotateLogs $domain> LogLevel debug ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/error_log.%Y%m%d 86400 +540" TransferLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/access_log.%Y%m%d 86400 +540" CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/$domain/request_log.%Y%m%d 86400 +540" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x [%{SSL_CLIENT_I_DN_CN}x][%{SSL_CLIENT_S_DN_CN}x] \"%r\" %b" </Macro>
(참고) 86400 : 1일을 초로 환산한 것, 540 : KST, UTC+9; 9시간을 초로 환산한 것
/etc/httpd/conf.d/a_kreonet_net.conf
<VirtualHost *:443> ServerName a.kreonet.net Use RotateLogs a.kreonet.net ... </VirtualHost>
/etc/httpd/conf.d/a_kreonet_net.conf
<VirtualHost *:443> ServerName b.kreonet.net Use RotateLogs b.kreonet.net ... </VirtualHost>
로그 확인
$ sudo tree tree /var/log/httpd /var/log/httpd ├── a.kreonet.net/ │ ├── access_log.20210517 │ ├── access_log.20210518 │ ├── error_log.20210517 │ ├── error_log.20210518 │ ├── request_log.20210517 │ └── request_log.20210518 └── b.kreonet.net/ ├── access_log.20210517 ├── access_log.20210518 ├── error_log.20210517 ├── error_log.20210518 ├── request_log.20210517 └── request_log.20210518
로그가 저장될 폴더는 서버 구동 전 미리 생성되어 있어야 한다; /var/log/httpd/a.kreonet.net, /var/log/httpd/b.kreonet.net