monologで簡単にログ出力
PHPで開発をしていると、ログを出力したい画面は多いかと思います
でもいちいち自分でログ出力クラスを作るのは面倒!
という時に便利なロギングライブラリがあります
monologです
この記事を書いてる時点での最新バージョンはv2.0.2です
インストール
コンポーザーで以下のコマンドを実行
composer require monolog/monolog
ログの出力方法
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
require 'vendor/autoload.php';
// ロガーを生成
$logger = new Logger('my_logger');
// ハンドラーのセット
$logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));
// ログ出力
$logger->info('いでよ!ログ出力ー');
出力結果
/my_app.log
[2020-05-22 12:54:32] my_logger.INFO: いでよ!ログ出力ー [] []
日毎にファイルを作る
monologが便利なのは、簡単に日毎にファイルを分けて作れるところ(RotatingFileHandler)
ずーっと同じファイルに出力していると、どんどんファイルが肥大化しちゃうからね
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
require 'vendor/autoload.php';
// ロガーを生成(チャネル名の設定)
$logger = new Logger('my_logger');
// 日毎にファイルを作る
$log->pushHandler(new RotatingFileHandler(__DIR__.'/my_app.log',5));
// ログ出力
$logger->info('いでよ!ログ出力ー');
出力結果
my_app-2020-05-22.log
[2020-05-22 12:54:32] my_logger.INFO: いでよ!ログ出力ー [] []
RotatingFileHandlerの第二引数を指定すると、自動的に古いファイルを削除してくれる
例えば「5」としておくと、6個目の日付ファイルが生成された時点で、最初の日付のファイルが削除される
変数の出力
プログラム中の変数も出力できる
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
require 'vendor/autoload.php';
// ロガーを生成(チャネル名の設定)
$logger = new Logger('my_logger');
// ハンドラーのセット
$logger->pushHandler(new StreamHandler(__DIR__.'/my_app.log', Logger::DEBUG));
$array = ['aaa','bbb'];
// ログ出力
$logger->info('いでよ!ログ出力と変数!',$array);
出力結果
/my_app.log
[2020-05-22 12:54:32] my_logger.INFO: いでよ!ログ出力と変数! ["aaa","bbb"] []
ディスカッション
コメント一覧
まだ、コメントがありません
よくLoadingされてるDocs
新たにPostされたDocs
: ウェブサービス
メルカリやラクマの商品がいつ出品されたのかを調べる裏技
メルカリやラクマなどで商品を探してると、ときどき、 「この商品はいつ出品されたも ...: 仕事環境
15年前のエアコンに洗浄スプレーしたら想像以上にキレイになった
うちのエアコンは新品で購入してからすでに15年が経過しています にもかかわらず、 ...: Laravel
一定時間で消えるフラッシュメッセージを簡単に実装[Laravel8]
以前、手軽にフラッシュメッセージが実装できるnotieを紹介しました 今回は、そ ...: Laravel
ランダムな文字列やユニークなIDをLaravelで生成
random use Illuminate\Support\Str; // 引数 ...: スマホ
4,837円あげるって言うからOCNモバイルOneにLinksmateから乗り換えたんですよ
これまでは僕はスマホの通信会社に、MVNOのLinksmateを使ってきました ...HashMap
created_by
はやぴ
Web/アプリ開発エンジニア
Sierにてお堅いB向けのソフトウェア開発を経て、現在はC向けのWebやアプリを中心に開発しています。
Utilities