PHPデバッグ関数とロギング関数の共有、デバッグロギング
Web サイトのプログラム開発プロセスではデバッグが必要になることが多く、リリース段階では問題の発見と回復イベントを容易にするために操作ログも記録する必要があります。これには、デバッグ機能とログ機能が必要です。
デバッグに使用する関数とエラーの記録に使用する関数を以下に書きます。
使用方法は非常に簡単で、ログファイルは日付に基づいて自動的に生成されます:
コードをコピーします コードは次のとおりです:
//デバッグ時には、複数のパラメーターを使用できます:
sysdebug("こんにちは");
sysdebug("こんにちは", "タイガーがやって来ます");
//エラーログにも同じことが当てはまります:
syserror("エラー");
syserror("エラー", "残念ながらトラは死んでしまいました ", "私たちは悲しいです");
php のデバッグおよびログ機能は次のとおりです:
コードをコピーします コードは次のとおりです:
/**
* デバッグ情報を記録します
*/
関数 sysdebug($msg) {
if (定義済み("DEBUG_MODE")) {
//TODO はデバッグ スイッチを検出し、公開時に印刷しません
$params = func_get_args();
$traces = デバッグ_バックトレース();
$trace = array_pop($traces);
sysrecord($params, $trace, 'デバッグ');
}
}
/**
* エラー情報を記録します
*/
関数 syserror($msg) {
$params = func_get_args();
$traces = デバッグ_バックトレース();
$trace = array_pop($traces);
sysrecord($params, $trace, 'エラー');
}
/**
*ファイルの書き込み
*@無視
*/
関数 sysfile($filename, $msg, $mode = null) {
$パス = ディレクトリ名($ファイル名);
if (!file_exists($path)) {
mkdir($path, 0666, true);
}
$flag = LOCK_EX;
if ($mode) {
スイッチ ($mode) {
ケース「追加」:
$flag = FILE_APPEND |
壊す;
ケース「a」:
$flag = FILE_APPEND |
壊す;
デフォルト:
壊す;
}
}
file_put_contents($filename, $msg, $flag);
}
/**
*レコード情報
*@無視
*/
関数 sysrecord($params, $trace, $level) {
$path = ディレクトリ名(__FILE__)
//TODO ログ保存ディレクトリは変更するのが最適です
$file = $trace['ファイル'];
$func = $trace['関数'];
if ($func == "sys$level") {
$func = '';
}
$filename = $path . date("Y-m-d")
$msg = "[" . date("m-d H:i:s") . "] File:"" .basename($file) . "" Func:"" . $func . "" Msg:" . $params)
;
sysfile($ファイル名, $msg, '追加');
}
http://www.bkjia.com/PHPjc/951232.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/951232.html
技術記事
PHP のデバッグ機能とログ機能は共有されており、デバッグログ Web サイトプログラムの開発プロセスではデバッグが必要になることが多く、問題の発見とイベントの復元を容易にするために、リリース段階でも実行ログを記録する必要があります。