😀
chrome-extensionのChromePHPを使用してchromeからログを見る
chromePHPはPHPのログをコンソールに吐き出せるようにするツールです。
chrome-extensionをインストールする
インストールするだけ
使い方
公式ドキュメントのまんまでOK
include_pathをとおして置くと何かと楽
include 'ChromePhp.php';
ChromePhp::log('hello world');
ChromePhp::log($_SERVER);
// using labels
foreach ($_SERVER as $key => $value) {
ChromePhp::log($key, $value);
}
// warnings and errors
ChromePhp::warn('this is a warning');
ChromePhp::error('this is an error');
でもこのままだとどこでログが出力されたかわからないのでちょっとカスタマイズする
My_Log.php
class My_Log {
/**
* クロムのコンソールログに出力するようのログ ※要chrome extension chromePHP
* @link http://www.chromephp.com/
* @param $message mixed 表示したいログの内容
* @param $ident string ログの先頭に出力するプレフィックス文字列
* @param $level int ChromePHPのログ出力フォーマットレベル
* @return void
**/
public static function console($message, $key = null, $level = 'info') {
$targetBackTrace = array();
foreach (debug_backtrace() as $i => $val) {
// 対象クラスと一致するので対象のバックトレース情報を付与する
if ($i == $val['class']) {
$targetBackTrace = $val;
$filePath = explode(DIRECTORY_SEPARATOR, $val['file']);
$fileShort = array_slice($filePath, (count($filePath) - 3));
$file = implode(DIRECTORY_SEPARATOR, $fileShort);
$key = sprintf('trace [%s:%s]', $file, $val['line']);
break;
}
}
require_once 'ChromePhp.php';
switch ($level) {
case 'info':
if (is_null($key)) {
return ChromePhp::log($message);
}
ChromePhp::log($key, $message);
break;
case 'warm':
if (is_null($key)) {
return ChromePhp::warn($message);
}
ChromePhp::warn($key, $message);
break;
case 'error':
if (is_null($key)) {
return ChromePhp::error($message);
}
ChromePhp::error($key, $message);
break;
}
}
}
大体今時はMVCなのでbacktraceから同一のクラスを見つけた場合の情報を取得している。
使い方はシンプル
hoge.php
My_Log::console($_SERVER);
以上
Discussion