웹서버/Apache

[Tips] 아파치 Error Log 이해

투칼론 2022. 2. 5. 06:47
반응형

아파치는 에러가 발생한 경우에 에러 로그 파일에 출력한다. 또한 로그 레벨을 설정하여 필요시에 디버깅, trace 등 상세한 로그를 출력하여 이슈 해결하는데 활용할 수 있다.
아파치 구성파일에 로그 레벨(LogLevel) 과 에러 파일(ErrorLog) 위치정보를 설정한다.


1. Error로그 파일 설정

- 설정 방법 (기본)

ErrorLog   "디렉터리/파일명"

예시) ErrorLog "/logs/apache/error_log"

 

- 설정 방법 (파일 로테이션)

ErrorLog   "|/usr/sw/apache/bin/rotatelogs 디렉터리/파일명.확장자형식 주기"

예시) ErrorLog "|/usr/sw/apache/bin/rotatelogs /logs/apache/error_log.%Y%m%d 86400"

위의 예시는 매일(86400초)마다 파일을 로테이션하고, Error 로그 파일명은 error_log.yyyymmdd 으로 생성된다.



2. Error로그 레벨 설정

- 설정 방법 

LogLevel    [로그레벨]

예시)  LogLevel    Info

참고로, 에러로그 레벨은 - debug, info, notice, warn, error, crit, alert, emerg 등 설정 가능


3. Error로그 포맷


[예시]

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test 

[로그 레벨 설명 및 예시]

Level Description Example
emerg Emergencies - system is unusable. "Child cannot open lock file. Exiting"
alert Action must be taken immediately. "getpwuid: couldn't determine user name from uid"
crit Critical Conditions. "socket: Failed to get a socket, exiting child"
error Error conditions. "Premature end of script headers"
warn Warning conditions. "child process 1234 did not exit, sending another SIGHUP"
notice Normal but significant condition. "httpd: caught SIGBUS, attempting to dump core in ..."
info Informational. "Server seems busy, (you may need to increase StartServers, or Min/MaxSpareServers)..."
debug Debug-level messages "Opening config file ..."
trace1 Trace messages "proxy: FTP: control connection complete"
trace2 Trace messages "proxy: CONNECT: sending the CONNECT request to the remote proxy"
trace3 Trace messages "openssl: Handshake: start"
trace4 Trace messages "read from buffered SSL brigade, mode 0, 17 bytes"
trace5 Trace messages "map lookup FAILED: map=rewritemap key=keyname"
trace6 Trace messages "cache lookup FAILED, forcing new map lookup"
trace7 Trace messages, dumping large amounts of data "| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"
trace8 Trace messages, dumping large amounts of data "| 0000: 02 23 44 30 13 40 ac 34 df 3d bf 9a 19 49 39 15 |"

 

4. Error로그 포맷 변경

Apache 2.4에 신규로 추가된 기능으로 ErrorLogFormat 을 설정할 수 있어 원하는 형식으로 에러로그를 출력할 수 있음.

#Simple example
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"

[참조] https://httpd.apache.org/docs/2.4/mod/core.html#errorlogformat