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 (필수 항목)

시스템 로그를 설정합니다.

구분 설명

자료형

array(object)

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

로그 메세지를 기록할 파일 및 콘솔에 대해 설정합니다.

구분 설명

자료형

object

system_log/handlers/file_handler

로그를 기록할 파일에 대해 설정합니다.

구분 설명

자료형

object

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"

system_log/handlers/enable_console_handler

콘솔 창에 해당 로그를 출력할지 여부를 설정합니다.

구분 설명

자료형

boolean

범위

false

access_log (필수 항목)

액세스 로그를 설정합니다.

구분 설명

자료형

array(object)

access_log/name

액세스 로거의 이름을 설정합니다. 해당 이름은 HTTP 절 등에서 액세스 로그를 남길 대상을 지정할 때 사용됩니다.

구분 설명

자료형

object

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

로그 메세지를 기록할 파일 및 콘솔에 대해 설정합니다.

구분 설명

자료형

object

access_log/handlers/file_handler

로그를 기록할 파일에 대해 설정합니다.

구분 설명

자료형

object

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"

access_log/handlers/enable_console_handler

콘솔 창에 해당 로그를 출력할지 여부를 설정합니다.

구분 설명

자료형

boolean

기본값

false

error_log (필수 항목)

에러 로그를 설정합니다.

구분 설명

자료형

array(object)

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

로그 메세지를 기록할 파일 및 콘솔에 대해 설정합니다.

구분 설명

자료형

object

error_log/handlers/file_handler

로그를 기록할 파일에 대해 설정합니다.

구분 설명

자료형

object

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 메모리에 버퍼링되지 않고 바로 파일에 기록됩니다.

[참고] 로그를 바로 확인해야 하는 곳에서는 해당 옵션을 설정하면 문제가 발생하는 경우 쉽게 확인할 수 있습니다.

error_log/handlers/file_handler/permission

에러 로그 파일의 접근 권한을 설정합니다.

UNIX 계열 운영체제에서 사용하는 파일 접근 권한과 동일한 의미를 가지며, UNIX/Linux 환경에서만 사용할 수 있습니다.

구분 설명

자료형

string

범위

"0600" ~ "0777"

error_log/handlers/enable_console_handler

콘솔 창에 해당 로그를 출력할지 여부를 설정합니다.

구분 설명

자료형

boolean

기본값

false

설정 예시

다음은 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"
            }
        }
    }
}