skillup

技術ブログ

PHP

PHPでのログ出力 PHP monolog

投稿日:2016年5月11日 更新日:

PHPでデバッグするときは、画面上にvar_dumpで情報を見ていたのですが、これができない場面ではログへの出力を行うことになります。

いままではフレームワークに標準でついてたんですが、これを機に一般のPHPのログ出力について勉強。

既存のPHPのログ出力に関していうと下記リンクが詳しいです。

https://unoh.github.io/2007/05/10/php-logging-to-text-files.html

上記のリンクに上がっている方法が一番歴史があるとおもうのですが、2016年5月現在,PHP monologというライブラリが使えるという情報を聞いたので早速調査つかってみました。

インストール

composerでインストールできます。composer.jsonに下記のように記述してcomopser  installでOKです。

プログラム

一応上記のプログラムでなんとかデバッグができるようになりました。

と書けば、配列でもオブジェクトでも内容を出力することはできるのですが(逆に言うとこれを書かないと出力されないです。)、ここに直に配列やオブジェクトを渡しても改行されていないため、非常に見にくいです。

そこでvar_dumpの結果自体を文字列として引き渡せばいいということに気づき、

というメソッドを実装しています。

参考リンク

Monologでロギングする

PHP monologをカスタマイズしてみた

php : var_dump の内容を文字列で受け取る

-PHP
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

underbarphpについて+配列処理頻出パターン

配列系の処理を関数型で行いたいときにJavaだとラムダ式、javaScriptだとunderscore.jsがあります。 PHPではできないものか・・といろいろと探していたところunderbar.ph …

no image

Traitによるコードの再利用

PHPでは多重継承が禁じられて(親は1つしかもてない)いるため、共通性のあるコードを書こうと思った時に親にかいていない場合限界があります。 そんな時に使えるのがTraitという考え方で、これを使います …

no image

正規表現(/を含むとき)

PHPの正規表現ですが、判定する文字列の中にスラッシュが入っている時の処理はデリミタを//ではなく{}でくくればOKです。 例えば数字2桁/数字1桁をチェックしたいとき [crayon-65dc24c …

no image

PHPでのデバッグ

基本的なことですが、PHPのdebugについておさらいを。 Contents1 一般的なデバッグツール1.1 var_dump1.2 xdebug1.3 フレームワークのdebugツール1.4 dd1 …

no image

PHP7に関して

先週きづいたのですが、PHPが5.6から7になりましたね。 まあ当分はまだPHP5で開発していきますが、herokuがいきなり7になり、アプリが動かないということが起こりました。 7対応させたかったん …

アーカイブ