PHP LOG使用心得(2)
生活随笔
收集整理的這篇文章主要介紹了
PHP LOG使用心得(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php
/**
* create by :xiaojiang
* PHP log 類 日志入庫功能 僅供交流學習
*/class Config{public static function getConfig (){return array('LOG_LEVEL'=>75 //INFO
);}
}
class Log{private $LogFile;private $logLevel;const DEBUG = 100;const INFO = 75;const NOTICE = 50;const WARNING =25;const ERROR = 10;const CRITICAL = 5;private function __construct(){}public static function getInstance($name){return Log::backendManager($name);}public static function register($app,$params){$urlDate = parse_url($params);if(!isset( $urlDate['scheme'])){throw Exception('invalid log connection');}@include('Logger/backend'.$urlDate['scheme'].'.class.php');$className = $urlDate['scheme'].'backend';if(!class_exists($className)){throw new Exception('invalid className '.$className);}$backObj = new $className($params);Log::backendManager($app,$backObj);}private static function backendManager($name,$obj = null){static $backends_arr;if(!isset($backends)){$backends = null;}if(isset($obj)){$backends_arr[$name] = $obj;}else{if(!isset($backends_arr[$name])){throw new Exception("the specified {$name} was not registered ");}return $backends_arr[$name];}}public function levelToString($logLevel){$ret = '[unknow]';switch ($logLevel){case LOG::DEBUG:$ret = 'LOG::DEBUG';break;case LOG::INFO:$ret = 'LOG::INFO';break;case LOG::NOTICE:$ret = 'LOG::NOTICE';break;case LOG::WARNING:$ret = 'LOG::WARNING';break;case LOG::ERROR:$ret = 'LOG::ERROR';break;case LOG::CRITICAL:$ret = 'LOG::CRITICAL';break;}return $ret;}
}
try{LOG::register('error','http://localhost?user_name=root&dbname=test&table=test&password=');
}catch(Exception $e){echo $e->getMessage();
}
try{$logIns = LOG::getInstance('error');
}catch(Exception $e){echo $e->getMessage();
}
$logIns->LogMessage('哈哈',Log::INFO,'test');/*** 文件 Logger/Httpbackend.class.php*/class Httpbackend{public function __construct($params){$Date = parse_url($params);parse_str($Date['query'],$url_params);$this->db = @mysql_connect($Date['host'],$url_params['user_name'],$url_params['password']);if(!is_resource($this->db)){throw new Exception('invalid db resource');}mysql_select_db($url_params['table'],$this->db);mysql_set_charset('utf8',$this->db); $this->logLevel = Config::getConfig('LOG_LEVEL');}public function LogMessage($msg, $log_level = Log::info,$module=null){if($log_level > $this->logLevel) return ;$sql = "INSERT INTO test (`msg`,module,add_time) VALUES ('{$msg}','{$module}',unix_timestamp())";mysql_query($sql,$this->db); }}
?>
轉載于:https://www.cnblogs.com/glory-jzx/archive/2012/08/16/2641027.html
總結
以上是生活随笔為你收集整理的PHP LOG使用心得(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【openlayers】修改源码支持SL
- 下一篇: SharePoint 2010 隐藏快速