アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

('ω') < イザユケエンジニャー

デバッグ用に一時的にログファイル出力するやつ

別に一時的なログでなくとも同じようなもんですが、よく使うので…要するに自分用コピペメモです。


PHPで開発する際、デバッグで変数の中身を知りたいときはvar_dump等でお手軽に画面表示できますが、
諸々の理由で画面には出したくない場合もあります。

  • 稼働中の本番環境で確認したい
  • データが膨大なのでブラウザには表示したくない
  • ajaxで呼び出すのでそもそもvar_dump等ではダメ

など。

そういう場合はログファイルに放り込めばよいので、その書き方を。

<?
$dat = ... ; // 中身を確認したい変数

// >>> デバッグ用 >>>>>>>>>>
$logtext  = "================================\n";
$logtext .= date("Y-m-d H:i:s") . "\n";
$logtext .= var_export($dat, true) . "\n\n";
file_put_contents("ログファイルのフルパス", $logtext, FILE_APPEND);
// <<<<<<<<<<<<<<<<<<<<<<<<<

これで、日時と変数の内容がログファイルに追加されていきます。

var_exportは変数だけを渡すと画面に表示する関数ですが、第2引数にtrueを渡すことで表示は行わず、戻り値に文字列が得られるようになります。
PHP: var_export - Manual

また、file_put_contentsの第3引数のFILE_APPENDはログファイルに追記するための定数です。
追記ではなく上書きしてしまいたい場合は省略すればOK。
PHP: file_put_contents - Manual