Apache | 로그 파일 | 로그 파일의 위치 (CustomLog, ErrorLog)

액세스 및 오류 로그의 위치는 “httpd.conf"에 정의되어 있다. 먼저 액세스 로그에서 살펴 보겠다.

액세스 로그 : CustomLog

액세스 로그 파일의 위치는 “CustomLog"로 지정한다. “httpd.conf"에서 “CustomLog"로 검색해 보면, 다음과 같은 내용을 찾을 수 있을 것이다.

<IfModule log_config_module>
    #
    # The following directives define some format nicknames for use with
    # a CustomLog directive (see below).
    #
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      # You need to enable mod_logio.c to use %I and %O
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    #
    # The location and format of the access logfile (Common Logfile Format).
    # If you do not define any access logfiles within a <VirtualHost>
    # container, they will be logged here.  Contrariwise, if you *do*
    # define per-<VirtualHost> access logfiles, transactions will be
    # logged therein and *not* in this file.
    #
    CustomLog "logs/access.log" common

    #
    # If you prefer a logfile with access, agent, and referer information
    # (Combined Logfile Format) you can use the following directive.
    #
    #CustomLog "logs/access.log" combined
</IfModule>

액세스 로그 파일을 지정하는 “CustomLog” 형식은 다음과 같다.

CustomLog 로그-파일-위치 로그-형식-이름

로그 파일 위치는 “ServerRoot"의 위치에서 상대 위치로 지정한다. ServerRoot에 대해서는 “서버 위치 디렉터리 (ServerRoot)“를 참조한다.

로그 형식 이름은 “LogFormat"으로 정의된 어떤 로그를 기록할 것에 대한 정의를 지정한 것이다. “LogFormat"의 맨 뒤에 작성되어 있는 문장이 포멧명이 된다. 포멧 내용에 대한 자세한 내용은 다른 페이지에서 설명하겠다.

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common

따라서 첫번째 줄의 LogFormat 이름은 “combined"이고, 두번째 줄의 LogFormat 이름은 “common"이다.

기본적으로 활성화되어 있는 액세스 로그는 다음과 같이 정의되어 있다.

 CustomLog "logs/access.log" common

이 설정은 로그 파일명은 “access.log"이고, 로그 포멧은 “common"으로 되어 있다.

에러 로그 : ErrorLog

에러 로그 파일의 위치는 “ErrorLog"로 지정한다. “httpd.conf"에서 “ErrorLog"로 검색해 보면, 다음과 같은 내용을 찾을 수 있을 것이다.

#
# ErrorLog: The location of the error log file.
# If you do not specify an ErrorLog directive within a <VirtualHost>
# container, error messages relating to that virtual host will be
# logged here.  If you *do* define an error logfile for a <VirtualHost>
# container, that host's errors will be logged there and not here.
#
ErrorLog "logs/error.log"

에러 로그 파일의 위치도 “ServerRoot"의 위치에서 상대 위치로 지정된다.

로그 파일 확인

액세스 로그와 에러 로그를 텍스트 파일로 되어 있어 텍스트 편집기에서 열어 볼 수 있다.

C:\apache\Apache24\logs>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: XXXX-XXXX

 C:\apache\Apache24\logs 디렉터리

2019-12-05  오후 11:29    <DIR>          .
2019-12-05  오후 11:29    <DIR>          ..
2019-12-05  오후 11:25            17,108 access.log
2019-12-05  오후 11:29            60,733 error.log
2019-12-05  오후 11:29                 7 httpd.pid
2019-08-09  오후 11:50             3,146 install.log
               4개 파일              80,994 바이트
               2개 디렉터리  450,580,013,056 바이트 남음

C:\apache\Apache24\logs>

access.log

127.0.0.1 - - [03/Dec/2019:01:21:23 +0900] "GET /referer.html HTTP/1.1" 304 -
127.0.0.1 - - [03/Dec/2019:01:21:23 +0900] "GET /img/devkuma.jpg HTTP/1.1" 403 199
::1 - - [03/Dec/2019:01:21:32 +0900] "GET /referer.html HTTP/1.1" 304 -
::1 - - [03/Dec/2019:01:21:32 +0900] "GET /img/devkuma.jpg HTTP/1.1" 304 -
127.0.0.1 - - [03/Dec/2019:01:21:51 +0900] "GET /img/devkuma.jpg HTTP/1.1" 200 5168
::1 - - [03/Dec/2019:01:22:43 +0900] "-" 408 -
::1 - - [03/Dec/2019:01:22:43 +0900] "-" 408 -
127.0.0.1 - - [03/Dec/2019:01:22:51 +0900] "-" 408 -
127.0.0.1 - - [03/Dec/2019:01:53:07 +0900] "GET /admin/admin.page HTTP/1.1" 401 381
127.0.0.1 - - [03/Dec/2019:01:53:34 +0900] "GET /admin/admin.html HTTP/1.1" 401 381
127.0.0.1 - - [03/Dec/2019:01:54:12 +0900] "GET / HTTP/1.1" 200 99

error.log

[Thu Dec 05 23:27:14.834393 2019] [mpm_winnt:notice] [pid 5788:tid 580] AH00364: Child: All worker threads have exited.
[Thu Dec 05 23:27:14.852887 2019] [mpm_winnt:notice] [pid 11848:tid 576] AH00430: Parent: Child process 5788 exited successfully.
[Thu Dec 05 23:29:01.662578 2019] [mpm_winnt:notice] [pid 10168:tid 668] AH00455: Apache/2.4.41 (Win64) PHP/7.4.0 configured -- resuming normal operations
[Thu Dec 05 23:29:01.662578 2019] [mpm_winnt:notice] [pid 10168:tid 668] AH00456: Apache Lounge VS16 Server built: Aug  9 2019 16:46:32
[Thu Dec 05 23:29:01.662578 2019] [core:notice] [pid 10168:tid 668] AH00094: Command line: 'httpd.exe -d C:/apache/Apache24'
[Thu Dec 05 23:29:01.665949 2019] [mpm_winnt:notice] [pid 10168:tid 668] AH00418: Parent: Created child process 7372
[Thu Dec 05 23:29:02.063030 2019] [mpm_winnt:notice] [pid 7372:tid 664] AH00354: Child: Starting 64 worker threads.

기록되는 포맷의 세부 사항 및 에러 로그에 기록되는 에러 레벨 설정 등에 대해서는 다음 페이지에서 설명하도록 하겠다.




최종 수정 : 2019-12-10