😄

LaravelでProcessorsを追加するメモ

に公開

LaravelでProcessorsを追加するメモ

  • LaravelでProcessorsを追加することでメモリの使用量やpid、IPアドレスなどの情報をログに出力することができる。
  • pushProcessorにuseしたProcessorを渡すことで簡単に使用することができる。
  • 自分で作った自作Processorも同じようにProsessorに渡すと使用できる
use Monolog\Processor\MemoryUsageProcessor;
use Monolog\Processor\ProcessIdProcessor;
use Monolog\Processor\UidProcessor;
use Monolog\Processor\WebProcessor;

class CustomFormatter extends LineFormatter
{
    /**
     * 出力されるログのフォーマット
     *
     * @var string
     */
    protected $log_format = "[%datetime% (JST)] %channel%.%level_name%: %message% %context% %extra%\n";

    /**
     * ログの日付フォーマット
     *
     * @var string
     */

    protected $date = "Y/m/d H:i:s.v";

    public function __invoke(Logger $logger): void
    {
        $processps = new ProcessIdProcessor();
        $uidps = new UidProcessor();
        $webps = new WebProcessor();
        $memoryps = new MemoryUsageProcessor();

        foreach ($logger->getHandlers() as $handler) {
            $handler->setFormatter(new LineFormatter(
                $this->log_format,
                $this->date,
                true,
                true
            ));

            $handler->pushProcessor($processps);
            $handler->pushProcessor($uidps);
            $handler->pushProcessor($webps);
            $handler->pushProcessor($memoryps);
        }
    }
}

GitHubで編集を提案

Discussion