기존 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 One에서 로그 데이터 를 확인하세요.
모든 것이 올바르게 구성되고 데이터가 풍부한 메타데이터와 함께 New Relic으로 전달되는 경우 이제 로그가 JSON으로 내보내지고 trace.id 및 span.id 필드가 포함되어야 합니다. UI에 로그 데이터가 표시되지 않으면 문제 해결 절차 를 따르세요.
애플리케이션의 로그에 trace.id 및 span.id 와 같은 필드가 포함되어 있지 않으면 Monolog 로그 농축기 구성에 문제가 있을 수 있습니다. 이러한 상황에서:
앱용 PHP 에이전트가 설치되었고 분산 추적을 사용하도록 구성되었는지 확인하십시오.
로그 레코드를 보낼 때 응용 프로그램이 syslog() 가 아닌 Monolog 로거 개체를 사용하고 있는지 확인하십시오.
다른 Monolog 핸들러가 로그 레코드가 버블링 되는 것을 막고 있지 않은지 확인하십시오.