Monolog는 PHP 기반의 비교적 완전하고 쉽게 확장 가능한 로깅 라이브러리입니다. 현재 Symfony, Laravel, CakePHP 등 잘 알려진 많은 PHP 프레임워크에는 Monolog가 내장되어 있습니다. Monolog는 로그를 파일, 소켓, 받은 편지함, 데이터베이스 및 다양한 웹 서비스로 보낼 수 있습니다.
Monolog는 PSR3 인터페이스 사양을 따르며 동일한 사양을 따르는 다른 로깅 라이브러리로 쉽게 대체될 수 있습니다. Monolog는 확장성이 우수합니다. Handler, Formatter 및 Processor 인터페이스를 통해 Monolog 클래스 라이브러리를 다양한 방식으로 확장하고 사용자 정의할 수 있습니다.
기본 사용법
<?php use Monolog\Logger; use Monolog\Handler\StreamHandler; // 创建日志频道 $log = new Logger('name'); $log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING)); // 添加日志记录 $log->addWarning('Foo'); $log->addError('Bar');
핵심 개념
각 Logger 인스턴스에는 채널 이름(채널)과 핸들러 스택이 포함되어 있습니다. 레코드를 추가하면 레코드는 핸들러 스택을 통해 처리됩니다. 각 핸들러는 다음 스택의 다음 핸들러에 레코드를 전달할지 여부도 결정할 수 있습니다.
핸들러를 통해 복잡한 로그 작업을 구현할 수 있습니다. 예를 들어 StreamHandler를 스택 맨 아래에 놓으면 결국 모든 로그 레코드가 하드 디스크 파일에 기록됩니다. 동시에 MailHandler를 스택 상단에 배치하고 로그 수준을 설정하여 이메일을 통해 오류 로그를 보냅니다. Handler에는 $bubble 속성이 있습니다. 이 속성은 핸들러가 레코드를 가로채서 다음 핸들러로 이동하는 것을 방지하는지 여부를 정의합니다. 따라서 MailHandler의 $bubble 매개변수를 false로 설정하면 오류 로그가 발생할 때 로그가 StreamHandler를 통해 하드 디스크에 기록되는 대신 MailHandler를 통해 전송됩니다.
여러 로거를 생성할 수 있으며 각각 고유한 채널 이름과 핸들러 스택을 정의할 수 있습니다. 핸들러는 여러 로거 간에 공유될 수 있습니다. 채널 이름이 로그에 반영되어 로그 기록을 더 쉽게 보고 필터링할 수 있습니다.
로그 형식(포맷터)이 지정되지 않은 경우 핸들러는 기본 포매터를 사용합니다.
로그 수준은 현재 RFC 5424에 정의된 8가지 수준(디버그, 정보, 알림, 경고, 오류, 심각, 경고, 긴급)이 사용됩니다. 로그 레코드에 대한 다른 요구 사항이 있는 경우 Processo를 통해 로그 레코드에 콘텐츠를 추가할 수 있습니다.
로그 수준
DEBUG(100): 자세한 디버그 정보입니다.
INFO(200): 주요 이벤트.
NOTICE(250) : 평범하지만 중요한 이벤트입니다.
경고(300): 오류가 아닌 예외가 발생했습니다.
ERROR (400): 런타임 오류이지만 즉시 처리할 필요는 없습니다.
CRITICA(500): 심각한 오류입니다.
EMERGENCY(600): 시스템을 사용할 수 없습니다.
이 사이트의 모든 리소스는 네티즌이 제공하거나 주요 다운로드 사이트에서 재인쇄되었습니다. 소프트웨어의 무결성을 직접 확인하십시오! 이 사이트의 모든 리소스는 학습 참고용으로만 사용됩니다. 상업적 목적으로 사용하지 마시기 바랍니다. 그렇지 않으면 모든 결과에 대한 책임은 귀하에게 있습니다! 침해가 있는 경우 당사에 연락하여 삭제하시기 바랍니다. 연락처: admin@php.cn
관련 기사
16Jan2025
프로젝트 전반에 걸쳐 여러 로깅 라이브러리를 저글링하는 데 지치셨나요? 일관되지 않은 오류와 메타데이터 로깅으로 인해 불만이 있으신가요? 오픈 소스 솔루션인 LogLayer는 로깅 프로세스를 간소화하고 개발자 경험을 향상시킵니다. LogLayer란 무엇입니까? 로그레이어
29Jul2016
도서관 관리 시스템 활용 사례 다이어그램: 도서관 관리 시스템 활용 사례 다이어그램 도서관 관리 프로그램(1): 이 수준의 프로그램에서 사용하는 데이터 테이블 구조: # ------ --- --------------------- # # 데이터 테이블 구조 'author' # CREATE TABLE 작성자 ( author_id int (6) DEFAULT '0' NOT NULL auto_increment, first_name varchar(20)
29Jul2016
도서관 관리 시스템 소스 코드: 도서관 관리 시스템 소스 코드 php 무작위 인증 코드 생성 이미지 코드: 다음과 같이 코드를 복사합니다:
Hot Tools
종속성 주입 컨테이너용 PHP 라이브러리
종속성 주입 컨테이너용 PHP 라이브러리
50개의 뛰어난 클래식 PHP 알고리즘 모음
클래식 PHP 알고리즘, 훌륭한 아이디어를 배우고 사고력을 확장하세요
이미지 최적화를 위한 작은 PHP 라이브러리
이미지 최적화를 위한 작은 PHP 라이브러리