<?php /** * エラーロギングユーティリティ * $Id: ErrorLogger.inc,v 1.1 2015/10/08 11:18:56 wanggb Exp $ * @package jp.aimslib2.util */ class ErrorLogger { const LOG_ERROR_OFF = 0; // オフ const LOG_ERROR = 1; // E_USER_ERROR相当。処理が中断するエラーの発生。 const LOG_WARNING = 2; // E_USER_WARNING相当。処理は止まらないが、致命的なエラーの発生。クラスに対する許可していない処理等。 const LOG_NOTICE = 3; // E_USER_NOTICE相当。初期化されていない変数、SQLのエラー等。 const LOG_INFO = 10; // 処理の状況を出力する。仮運用時に表示させたい、デバッグよりは重要な情報。 const LOG_DEBUG = 99; // LOG_DEBUG デバッグのための出力。 /** * ログを出力します。 */ public static function doOutput($mixed, $level = 0, $title = null) { if (defined("ERROR_LOG_LEVEL") && (ERROR_LOG_LEVEL < $level || ERROR_LOG_LEVEL == self::LOG_ERROR_OFF)) { return; } if (!empty($title)) { $title = "[" . $title . "]"; } else { $title = ""; } if (is_scalar($mixed)) { // 普通はそのまま出力 error_log($title . $mixed, 0); } else { ob_start(); var_dump($mixed); $data = ob_get_clean(); error_log($title . $data, 0); } } /** * デバッグ用出力 * @param String $message * @param String $title */ public static function debug($message, $title = null) { $op = new ErrorLogger(); $op->doOutput($message, self::LOG_DEBUG, $title); } /** * 情報用出力 * @param String $message * @param String $title */ public static function info($message, $title = null) { $op = new ErrorLogger(); $op->doOutput($message, self::LOG_INFO, $title); } /** * 注意用出力 * @param String $message * @param String $title */ public static function notice($message, $title = null) { $op = new ErrorLogger(); $op->doOutput($message, self::LOG_NOTICE, $title); } } ?>