🍑

[PHP] Monologでログを取得する

2022/02/08に公開約1,100字

Monologでロギングするサンプルコード
Monolog1と2がありますが、2のほうになります

環境要件

  • PHP7.2以上
    → それ以下: PHP 5.3以上の場合は、Monolog1を使用のこと

事前準備

composer require monolog/monolog
# vendorディレクトリがDLされるので、移動させつつリネームする
mv ./vendor /usr/lib/monolog

コード

testLog.php
<?php

require_once('/usr/lib/monolog/autoload.php');

use Monolog\Logger;
use Monolog\Formatter\LineFormatter;
use Monolog\Handler\StreamHandler;

// タイムゾーン設定
date_default_timezone_set("Asia/Tokyo");
// フォーマッタの作成
$dateFormat = "Y-m-d H:i:s";
$output = "[%datetime%] %channel% %level_name% %message%\n";
$formatter = new LineFormatter($output, $dateFormat);

// ハンドラの作成
$stream = new StreamHandler(__DIR__.'/log/test.log', Logger::INFO); // ログレベルINFO以上のみ出力
$stream->setFormatter($formatter);

// ロガーオブジェクトの作成
$logger = new Logger('test');
$logger->pushHandler($stream);

$logger->info('テスト'); // 出力される
$logger->debug('てすと'); // 出力されない
$logger->error('test'); // 出力される

実行結果

test.log
[2022-02-08 20:47:58] test INFO テスト
[2022-02-08 20:47:58] test ERROR test

参考

Discussion

ログインするとコメントできます