PEAR: Log #2 – 로그 레벨

로그 메시지에는 로그 레벨이란 것이 있는데, 대부분의 유닉스 계열의 로그 시스템에서 거의 동일하게 사용한다. Log에서도 마찬가지로 동일한 로그 레벨을 사용 중이고, Monolog, PSR-3, syslog를 사용한다고 해도 이 부분은 거의 같다.

Log 사용자 문서에 나온 로그 레벨 표를 일단 한 번 살펴보자.

Level Shortcut Description
PEAR_LOG_EMERG emerg() System is unusable
PEAR_LOG_ALERT alert() Immediate action required
PEAR_LOG_CRIT crit() Critical conditions
PEAR_LOG_ERR err() Error conditions
PEAR_LOG_WARNING warning() Warning conditions
PEAR_LOG_NOTICE notice() Normal but significant
PEAR_LOG_INFO info() Informational
PEAR_LOG_DEBUG debug() Debug-level messages

Level 값은 PEAR Log 패키지가 미리 정의한 값으로 log() 메소드 두번째 매개변수에 들어간다. 첨언하자면 PEAR_LOG_DEBUG가 가장 낮고, PEAR_LOG_EMERG가 가장 높은 레벨이다. 매번 log() 메소드에 로그 레벨 상수를 넣는 것이 번거롭다면 숏컷(Shortcut)을 사용 할 수도 있다.

로그 레벨을 구별해서 기록하고 싶다면, Log 인스턴스를 생성 할 때 어느 로그 레벨 이상만 기록할지 지정 할 수 있다.

5번째 매개변수에 로그 레벨 상수를 넣으면 해당 로그 레벨 이상인 메시지만 해당 로그 리소스에 기록한다.

이미 생성한 Log 인스턴스를 특정 로그 레벨들만 기록하게 하고 싶다면 setMask() 메소드를 통해 로그 레벨을 지정하면 된다.

특정 로그 레벨 이상 또는 이하만 기록하고 싶다면 MAX(), MIN() 메소드를 이용한다.

특정 로그 레벨을 제외한 나머지 로그 레벨들을 기록하려고 한다면 ^ 연산자를 이용해 마스크(Mask)를 지정한다.

Log 인스턴스에 특정 로그 레벨을 추가적으로 기록하고 싶다면 getMask() 메소드와 | 연산자를 이용해 마스크를 지정한다.

다음 글에서는 로그 메시지의 형식을 정의하는 방법에 대해 이야기 해보려고 한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다