Dockerのコンテナを使ってPHPのデバッグをした時にChrome Loggerを使った話です。
概要
私はよく開発環境にDockerを使うのですが、Dockerでは、コンテナのログをlogsというコマンドを使ってみることができます。しかし、logsで見ることができるログは、STDOUTとSTDERRに書かれたものです。
PHPの場合、デバッグの情報をHTMLに出力するというのが一般的ですが、HTMLに出力したくない場合、例えばApacheのログファイルに出力するなど、別の場所に出力したいということがあると思います。
しかしDockerの場合では、ファイルにログを書き出した場合、見るのが大変でデバッグに苦労します。
そこで、今回はChromeブラウザで使うことができる、Chrome Loggerを紹介します。
Chrome Loggerのインストール
最初に注意として、このChrome LoggerはChromeのプラグインを使用するので、Chromeブラウザでしか動作しません。なので、別のブラウザを使っている場合は、Chromeブラウザを使うか、これ以外の方法を考える必要があります。
では、使うための準備をします。
基本的に、公式サイトに書かれているようにすれば、うまくいきます。
Chrome Logger – Server side application debugging
準備では、プラグインのインストールと、デバッグしたいPHPファイルに、Chrome Logger用のファイルを読み込ませます。
PHPであれば、下記のサイトからChromePhp.phpをダウンロードします。
このファイルをデバッグしたいファイルへ読み込ませるために、下記の文を追加します。
include 'ChromePhp.php';
これで、デバッグの準備は完了です。
ちなみに、PHPの他にも、PythonやRuby用のものもあります。
使い方
使い方は簡単です。
ChromePhpのlogメソッドを使います。
ChromePhp::log('Hello console!');
ChromePhp::log($_SERVER);
info、warn、errorメソッドがあり用途によって分けることもできます。
ChromePhp::info('info log');
ChromePhp::warn('warn log');
ChromePhp::error('error log');
まとめ
Dockerのようなデバッグに一癖あるようなものでは、Chrome Loggerはオススメです。
他にも、HTMLファイルにデバッグの結果を書き出すことができなかったり、ファイルにデバッグの結果を書き出すことができない場合などもオススメです。
是非、Chrome Loggerを使うことを検討してみてください。