기존 Monolog 설정과 함께 Processor 및 Handler 을 사용할 수 있습니다. 기존 프로세서 및 처리기를 제거할 필요가 없습니다.
Monolog를 사용하여 호환되는 로그 전달자로 로그를 보내고 New Relic에 로그를 보내도록 해당 도구를 이미 구성한 경우 해당 도구에 대해서만 Processor 및 Formatter 을 사용할 수 있습니다. 이 옵션은 Handler 를 사용하여 New Relic에 직접 로그를 보내는 추가 오버헤드를 방지합니다.
setFormatter() 메서드를 지원하는 핸들러를 사용해야 하며 로깅 도구가 JSON 로그를 수집할 수 있어야 합니다.
다음은 다른 로그 전달자를 처리하도록 Monolog를 구성하는 예입니다.
<?php
use Monolog\Handler\StreamHandler;
use Monolog\Logger;
use NewRelic\Monolog\Enricher\{Formatter, Processor};
$log = new Logger('log');
$log->pushProcessor(new Processor);
$handler = new StreamHandler('php://stderr');
$handler->setFormatter(new Formatter);
$log->pushHandler($handler);
로그 어펜더를 올바르게 구성했는지 확인하려면 애플리케이션을 실행한 다음 쿼리 연산자 has:span.id has:trace.id 를 사용하여 New Relic에서 로그 데이터 를 확인하십시오.
모든 것이 올바르게 구성되고 데이터가 강화된 메타데이터와 함께 New Relic으로 전달되는 경우 이제 로그가 JSON으로 내보내지고 trace.id 및 span.id 필드가 포함되어야 합니다. UI에 로그 데이터가 표시되지 않으면 문제 해결 절차 를 따르세요.
애플리케이션의 로그에 trace.id 및 span.id 같은 필드가 포함되어 있지 않으면 Monolog 로그 보강 프로그램 구성에 문제가 있을 수 있습니다. 이러한 상황에서:
앱용 PHP 에이전트가 설치되었고 분산 추적을 사용하도록 구성되었는지 확인하십시오.
애플리케이션이 로그 레코드를 보낼 때 syslog() 이 아니라 Monolog 로거 개체를 사용하고 있는지 확인하십시오.
다른 Monolog 핸들러가 로그 레코드가 버블링 되는 것을 막고 있지 않은지 확인하십시오.