LOGGING 절
클라이언트의 요구 내역을 기록하는 형식을 지정합니다. 접근 내역과 에러 내역이 따로 저장되며 저장 형식을 지정할 수 있습니다. 시스템 로그, 액세스 로그, 에러 로그 모두 LOGGING 절에 설정합니다.
설정 항목
다음은 LOGGING 절의 환경 설정 형식입니다.
"logging": { "system_log": [ { "name": string, #"level": string, # "INFO" #"dump": [string], #"handlers": { #"file_handler": { "file_name": string, # "webtob_system.log" #"rotate_by_seconds": integer, # 0 #"valid_hours": integer, # 0 #"rotate_by_file_size": integer, # 0 #"archive_file_name": string, #"enable_sync": boolean, # false #"permission": string # "0600" }, #"enable_console_handler": boolean # false } } ], #"access_log": [ { "name": string, #"level": string, # "INFO" #"format": string, # "DEFAULT" #"exclude_by_ext": string, #"handlers": { #"file_handler": { "file_name": string, # "webtob_access.log" #"rotate_by_seconds": integer, # 0 #"valid_hours": integer, # 0 #"rotate_by_file_size": integer, # 0 #"archive_file_name": string, #"enable_sync": boolean, # false #"permission": string # "0600" }, #"enable_console_handler": boolean # false } } ], #"error_log": { #"level": "string", # "INFO" #"format": "string", # "ERROR" #"enable_exclude_client_address_on_error": boolean, # false #"handlers": { #"file_handler": { "file_name": string, # "webtob_error.log" #"rotate_by_seconds": integer, # 0 #"valid_hours": integer, # 0 #"rotate_by_file_size": integer, # 0 #"archive_file_name": string, #"enable_sync": boolean, # false #"permission": string # "0600" }, #"enable_console_handler": boolean # false } }, }
절과 설정 항목의 구성에 대한 기호나 내용에 대한 자세한 내용은 설정 항목 값의 형식 및 설정 방법을 참고합니다. |
system_log/name (필수 항목)
설정할 대상 시스템 로거를 지정합니다.
구분 | 설명 |
---|---|
자료형 |
object |
로거 이름은 '.'을 기준으로 하는 계층 구조로 구성되며, 로거에 대한 설정은 가장 하위 설정이 우선 적용됩니다. 예를 들어 (A)'webtob’와 (B)'webtob.http’가 모두 설정되어 있을 경우 'webtob.http' 로거는 (B) 설정을 따르고, 나머지 로거는 (A) 설정을 따릅니다. 최상위 시스템 로거인 'webtob’는 필수로 설정해야 합니다.
다음은 설정 가능한 로거에 대한 설명입니다.
로거 이름 | 적용 범위 |
---|---|
webtob.http |
HTTP 메시지를 다루는 전반에 대한 로그를 관리합니다. |
webtob.wjp |
WJP 메시지를 다루는 전반에 대한 로그를 관리합니다. |
webtob.ssl |
SSL 관련 로그를 관리합니다. |
webtob.network |
네트워크 전반에 대한 로그를 관리합니다. |
webtob.server |
각 스레드의 기동과 종료 관련 로그를 관리합니다. |
webtob.em.acceptor |
새로운 연결을 관리하는 Acceptor 관련 로그를 관리합니다. |
webtob.em.control |
Admin API 통신 관련 로그를 관리합니다. |
webtob.em.worker |
HTH 관련 로그를 관리합니다. |
webtob.util |
기타 유틸 함수 관련 로그를 관리합니다. |
다음은 설정 예시입니다.
"system_log": [ { "name": "webtob", "level": "DEBUG", "handlers": { "file_handler": { "file_name": "webtob.log" }, "enable_console_handler": false }, "dump": [ "ToClient", "FromClient", "ToServer", "FromServer", "SSLRead", "SSLWrite" ] }, { "name":"webtob.http", "level":"DEBUG", "handlers": { "file_handler": { "file_name": "webtob_http.log" }, "enable_console_handler": false } } ]
system_log/level
로그 레벨을 설정합니다.
시스템 로그 메시지의 레벨이 설정된 값 이상이면 출력됩니다. 레벨이 낮은 순서대로 "TRACE", "DEBUG", "INFO", "WARNING", "FATAL", "OFF"를 지원합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"TRACE" | "DEBUG" | "INFO" | "WARNING" | "FATAL" | "OFF" |
기본값 |
"INFO" |
레벨이 낮을수록 자세한 로그 메시지들이 출력됩니다. |
system_log/dump
덤프(dump) 로그 출력 여부를 설정합니다. 이 설정은 로그 레벨이 DEBUG 또는 TRACE일 때만 적용되며, 이름이 "webtob"인 로거에 대해서만 설정할 수 있습니다.
구분 | 설명 |
---|---|
자료형 |
array(string) |
범위 |
6개 이내 |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
FromClient |
클라이언트가 보낸 데이터를 로그에 출력합니다. |
ToClient |
클라이언트로 전송된 데이터를 로그에 출력합니다. |
FromServer |
서버가 보낸 데이터를 로그에 출력합니다. |
ToServer |
서버로 전송된 데이터를 로그에 출력합니다. |
SSLRead |
SSL 암호화되어 읽혀진 데이터를 로그에 출력합니다. |
SSLWrite |
SSL 암호화되어 쓰여질 데이터를 로그에 출력합니다. |
system_log/handlers/file_handler/file_name (필수 항목)
시스템 로그를 저장할 파일의 경로를 설정합니다. 상대 경로는 /로 시작하지 않으면 자동으로 "$WEBTOB6_HOME_PATH/상대 경로"로 대체됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
기본값 |
"webtob_system.log" |
파일 이름에 포함된 다음의 대체 문자열은 파일 생성 시 실제 값으로 변경됩니다. 예를 들어 FileName에 "log/system_%Y%%M%%D%.log"로 설정된 값은 로그 파일 생성 시 "$WEBTOB6_HOME_PATH/log/system_20231023.log"로 변환될 수 있습니다.
다음은 대체 문자열에 대한 설명입니다.
문자열 | 실제값 |
---|---|
%Y% |
년도(year)로 숫자 4개를 설정합니다. (예: 2009) |
%M% |
월(month)로 숫자 2개를 설정합니다. (예: 11) |
%D% |
일(day)로 숫자 2개를 설정합니다. (예: 05) |
%h% |
시(hour)로 숫자 2개를 설정합니다. (예: 10) |
%m% |
분(minute)으로 숫자 2개를 설정합니다. (예: 30) |
%s% |
초(second)로 숫자 2개를 설정합니다. (예: 45) |
system_log/handlers/file_handler/rotate_by_seconds
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일이 지정된 시간보다 오래되면 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 86400 |
기본값 |
0 |
system_log/handlers/file_handler/valid_hours
새로운 로그 파일을 설정된 시간 단위로 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 23 |
기본값 |
0 |
system_log/handlers/file_handler/rotate_by_file_size
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일의 크기가 지정된 크기보다 큰 경우 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
단위 |
bytes |
범위 |
0 ~ INT_MAX |
기본값 |
0 |
system_log/handlers/file_handler/archive_file_name
새로운 로그 파일 생성 시점에 기존 로그 파일은 archive_file_name에 설정된 이름으로 변경됩니다. 이후 새로운 로그 파일은 file_name에 설정된 형식으로 생성됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
system_log/handlers/file_handler/enable_sync
로그가 기록될 때 파일에 즉시 기록할지 여부를 설정합니다.
구분 | 설명 |
---|---|
자료형 |
boolean |
기본값 |
false |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
true |
로그 메시지들이 WebtoB 메모리에 버퍼링되지 않고 바로 파일에 기록됩니다. [참고] 로그를 바로 확인해야 하는 곳에서는 해당 옵션을 설정하면 문제가 발생하는 경우 쉽게 확인할 수 있습니다. |
system_log/handlers/file_handler/permission
시스템 로그 파일의 접근 권한을 설정합니다.
UNIX 계열 운영체제에서 사용하는 파일 접근 권한과 동일한 의미를 가지며, UNIX/Linux 환경에서만 사용할 수 있습니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"0600" ~ "0777" |
access_log/level
액세스 로그 레벨을 설정합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"INFO" | "OFF" |
기본값 |
"INFO" |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
OFF |
액세스 로그를 출력하지 않습니다. |
access_log/format
액세스 로그 파일에 기록될 메시지의 포맷을 설정합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
DEFAULT |
기본(Default) 로그 파일 포맷입니다. (로그 포맷: "%h %t \"%r\" %s %b %D") |
COMMON |
공통(Common) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b") |
COMBINED |
결합(Combined) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"") |
COMBINEDIO |
결합IO(CombinedIO) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O") |
ERROR |
에러 로그 파일 포맷입니다. (로그 포맷: "%r") |
%a |
요청을 보낸 장비의 IP 주소를 표시합니다. (%h와 동일) |
%A |
서버의 IP 주소를 표시합니다. |
%b |
헤더를 제외한 응답의 byte를 표시합니다. |
%{_attr_name_}C |
HTTP 요청의 쿠키 헤더 값 중 '_attr_name_'에 해당하는 값을 표시합니다. |
%d |
응답이 전송된 시간을 표시합니다. |
%D |
요청을 처리하는데 소요된 시간을 표시합니다. (단위: millisecond) |
%{ENV_NAME}e |
환경 변수 ENV_NAME을 출력합니다. |
%h |
요청을 보낸 장비의 IP 주소를 표시합니다. (%a와 동일) |
%H |
사용한 HTTP 버전을 표시합니다. |
%{HEADER_FIELD}i |
HTTP 요청의 HEADER_FIELD 헤더 값을 표시합니다. |
%I |
요청의 byte를 표시합니다. |
%l |
원격 로그인명을 표시합니다. |
%m |
HTTP 요청 메소드를 표시합니다. |
%O |
응답의 byte를 표시합니다. |
%p |
요청이 도착한 서버의 포트 번호를 표시합니다. |
%q |
HTTP 요청의 쿼리 값을 표시합니다. |
%r |
HTTP 요청의 Request line 전체를 표시합니다. |
%s |
응답에 사용된 HTTP 상태 코드를 표시합니다. |
%S |
http와 https를 구분하여 표시합니다. |
%t |
요청 처리를 마친 시간을 표시합니다. |
%T |
요청을 처리하는 데 소요된 시간을 표시합니다. (단위: 초) |
%u |
HTTP 인증에 사용된 사용자 이름을 표시합니다. |
%U |
HTTP 요청 URI를 표시합니다. |
%v |
호스트 헤더 필드 값을 표시합니다. |
access_log/handlers/file_handler/file_name (필수 항목)
액세스 로그를 저장할 파일의 경로를 설정합니다. 상대 경로는 /로 시작하지 않으면 자동으로 "$WEBTOB6_HOME_PATH/상대 경로"로 대체됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
기본값 |
"webtob_access.log" |
파일 이름에 포함된 다음의 대체 문자열은 파일 생성 시 실제 값으로 변경됩니다. 예를 들어 FileName에 "log/access_%Y%%M%%D%.log"로 설정된 값은 로그 파일 생성 시 "$WEBTOB6_HOME_PATH/log/access_20231023.log"로 변환될 수 있습니다.
다음은 대체 문자열에 대한 설명입니다.
문자열 | 실제값 |
---|---|
%Y% |
년도(year)로 숫자 4개를 설정합니다. (예: 2009) |
%M% |
월(month)로 숫자 2개를 설정합니다. (예: 11) |
%D% |
일(day)로 숫자 2개를 설정합니다. (예: 05) |
%h% |
시(hour)로 숫자 2개를 설정합니다. (예: 10) |
%m% |
분(minute)으로 숫자 2개를 설정합니다. (예: 30) |
%s% |
초(second)로 숫자 2개를 설정합니다. (예: 45) |
access_log/handlers/file_handler/rotate_by_seconds
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일이 지정된 시간보다 오래되면 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 86400 |
기본값 |
0 |
access_log/handlers/file_handler/valid_hours
새로운 로그 파일을 설정된 시간 단위로 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 23 |
기본값 |
0 |
access_log/handlers/file_handler/rotate_by_file_size
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일의 크기가 지정된 크기보다 큰 경우 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
단위 |
bytes |
범위 |
0 ~ INT_MAX |
기본값 |
0 |
access_log/handlers/file_handler/archive_file_name
새로운 로그 파일 생성 시점에 기존 로그 파일은 archive_file_name에 설정된 이름으로 변경됩니다. 이후 새로운 로그 파일은 file_name에 설정된 형식으로 생성됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
access_log/handlers/file_handler/enable_sync
로그가 기록될 때 파일에 즉시 기록할지 여부를 설정합니다.
구분 | 설명 |
---|---|
자료형 |
boolean |
범위 |
false |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
true |
로그 메시지들이 WebtoB 메모리에 버퍼링되지 않고 바로 파일에 기록됩니다. [참고] 로그를 바로 확인해야 하는 곳에서는 해당 옵션을 설정하면 문제가 발생하는 경우 쉽게 확인할 수 있습니다. |
access_log/handlers/file_handler/permission
액세스 로그 파일의 접근 권한을 설정합니다.
UNIX 계열 운영체제에서 사용하는 파일 접근 권한과 동일한 의미를 가지며, UNIX/Linux 환경에서만 사용할 수 있습니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"0600" ~ "0777" |
error_log/level
에러 로그 레벨을 설정합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
"INFO" | "OFF" |
기본값 |
"INFO" |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
OFF |
에러 로그를 출력하지 않습니다. |
error_log/format
에러 로그 파일에 기록될 메시지의 포맷을 설정합니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
DEFAULT |
기본(Default) 로그 파일 포맷입니다. (로그 포맷: "%h %t \"%r\" %s %b %D") |
COMMON |
공통(Common) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b") |
COMBINED |
결합(Combined) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"") |
COMBINEDIO |
결합IO(CombinedIO) 로그 파일 포맷입니다. (로그 포맷: "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O") |
ERROR |
에러 로그 파일 포맷입니다. (로그 포맷: "%r") |
%a |
요청을 보낸 장비의 IP 주소를 표시합니다. (%h와 동일) |
%A |
서버의 IP 주소를 표시합니다. |
%b |
헤더를 제외한 응답의 byte를 표시합니다. |
%{_attr_name_}C |
HTTP 요청의 쿠키 헤더 값 중 '_attr_name_'에 해당하는 값을 표시합니다. |
%d |
응답이 전송된 시간을 표시합니다. |
%D |
요청을 처리하는데 소요된 시간을 표시합니다. (단위: millisecond) |
%{ENV_NAME}e |
환경 변수 ENV_NAME을 출력합니다. |
%h |
요청을 보낸 장비의 IP 주소를 표시합니다. (%a와 동일) |
%H |
사용한 HTTP 버전을 표시합니다. |
%{HEADER_FIELD}i |
HTTP 요청의 HEADER_FIELD 헤더 값을 표시합니다. |
%I |
요청의 byte를 표시합니다. |
%l |
원격 로그인명을 표시합니다. |
%m |
HTTP 요청 메소드를 표시합니다. |
%O |
응답의 byte를 표시합니다. |
%p |
요청이 도착한 서버의 포트 번호를 표시합니다. |
%q |
HTTP 요청의 쿼리 값을 표시합니다. |
%r |
HTTP 요청의 Request line 전체를 표시합니다. |
%s |
응답에 사용된 HTTP 상태 코드를 표시합니다. |
%S |
http와 https를 구분하여 표시합니다. |
%t |
요청 처리를 마친 시간을 표시합니다. |
%T |
요청을 처리하는 데 소요된 시간을 표시합니다. (단위: 초) |
%u |
HTTP 인증에 사용된 사용자 이름을 표시합니다. |
%U |
HTTP 요청 URI를 표시합니다. |
%v |
호스트 헤더 필드 값을 표시합니다. |
error_log/handlers/file_handler/file_name (필수 항목)
에러 로그를 저장할 파일의 경로를 설정합니다. 상대 경로는 /로 시작하지 않으면 자동으로 "$WEBTOB6_HOME_PATH/상대 경로"로 대체됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
기본값 |
"webtob_error.log" |
파일 이름에 포함된 다음의 대체 문자열은 파일 생성 시 실제 값으로 변경됩니다. 예를 들어 FileName에 "log/error_%Y%%M%%D%.log"로 설정된 값은 로그 파일 생성 시 "$WEBTOB6_HOME_PATH/log/error_20231023.log"로 변환될 수 있습니다.
다음은 대체 문자열에 대한 설명입니다.
문자열 | 실제값 |
---|---|
%Y% |
년도(year)로 숫자 4개로 설정합니다. (예: 2009) |
%M% |
월(month)로 숫자 2개를 설정합니다. (예: 11) |
%D% |
일(day)로 숫자 2개를 설정합니다. (예: 05) |
%h% |
시(hour)로 숫자 2개를 설정합니다. (예: 10) |
%m% |
분(minute)으로 숫자 2개를 설정합니다. (예: 30) |
%s% |
초(second)로 숫자 2개를 설정합니다. (예: 45) |
error_log/handlers/file_handler/rotate_by_seconds
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일이 지정된 시간보다 오래되면 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 86400 |
기본값 |
0 |
error_log/handlers/file_handler/valid_hours
새로운 로그 파일을 설정된 시간 단위로 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
범위 |
0 ~ 23 |
기본값 |
0 |
error_log/handlers/file_handler/rotate_by_file_size
새로운 로그 메시지 생성할 때 현재 존재하는 로그 파일의 크기가 지정된 크기보다 큰 경우 새로운 로그 파일을 생성하도록 설정합니다.
구분 | 설명 |
---|---|
자료형 |
integer |
단위 |
bytes |
범위 |
0 ~ INT_MAX |
기본값 |
0 |
error_log/handlers/file_handler/archive_file_name
새로운 로그 파일 생성 시점에 기존 로그 파일은 archive_file_name에 설정된 이름으로 변경됩니다. 이후 새로운 로그 파일은 file_name에 설정된 형식으로 생성됩니다.
구분 | 설명 |
---|---|
자료형 |
string |
범위 |
255자 이내 |
error_log/handlers/file_handler/enable_sync
로그가 기록될 때 파일에 즉시 기록할지 여부를 설정합니다.
구분 | 설명 |
---|---|
자료형 |
boolean |
기본값 |
false |
다음은 설정값에 대한 설명입니다.
설정값 | 설명 |
---|---|
true |
로그 메시지들이 WebtoB 메모리에 버퍼링되지 않고 바로 파일에 기록됩니다. [참고] 로그를 바로 확인해야 하는 곳에서는 해당 옵션을 설정하면 문제가 발생하는 경우 쉽게 확인할 수 있습니다. |
설정 예시
다음은 LOGGING 절을 설정한 예시입니다.
"logging": { "system_log": [ { "name": "webtob", "level": "DEBUG", "handlers": { "file_handler": { "file_name": "webtob-%Y%%M%%D%-%h%%m%%s%.log" } } ], "access_log": [ { "name": "access_log1", "level": "INFO", "format": "DEFAULT", "handlers": { "file_handler": { "file_name": "access-%Y%%M%%D%%s%.log" } } }, { "name": "access_log2", "level": "INFO", "format": "DEFAULT", "handlers": { "file_handler": { "file_name": "access2-%Y%%M%%D%%s%.log" } } } ], "error_log": { "level": "INFO", "format": "ERROR", "handlers": { "file_handler": { "file_name": "logs/errors%s%.log" } } } }