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)相关推荐
- Android APP 奔溃 ,如何在开发者选项观察错误日志
如何抓取APP使用中崩溃的log日志 心得体会: app 崩溃后,在开发者选项中 点击发送完整报告,稍等一会,通知栏会有通知文件,大概小20M 1.收到的zip压缩包打开内容 2.关键代码 搜索关键字 ...
- 霓虹灯效果 函数 作用域
1.霓虹灯效果 <!DOCTYPE html> <html><head><meta charset="utf-8"><titl ...
- kettle 作业调度
本周项目上用到了kettle并且需要做任务调度,听老师说用kettle自带的调度不大稳定于是便baidu了下,参照这篇文章完成了通过kitchen的调度,简单说就是通过windows的计划任务来调用. ...
- [转载]Hadoop 2.X 日志文件和MapReduce的log文件研究心得
之前一直不清楚MapReduce阶段System.out打印到哪儿去了.现在知道了,任务分发了节点后,是无法再客户端窗口查看的.要想查看,需要打开默认关闭的JobHistoryServer进程.存放在 ...
- java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得
该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...
- mysql主从数据库含义_(转)Mysql数据库主从心得整理
管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...
- 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版
嗨,各位好. 相信各位过来点开的时候会鄙视一句"这厮,又来搞山石了",哈哈没错,这次确实又来了,不过这次带了点排错的心得过来,希望给未来在常见的配置过程当中,不知道怎么排错时候有些 ...
- 看了这篇 LeetCode 的刷题心得,再也不用抄别人代码了
作者:VioletJack 原文:<LeetCode 算法题刷题心得>https://www.jianshu.com/p/8876704ea9c8 花了十几天,把<算法>看了一 ...
- linux shell 基础 使用日志与心得
linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现 #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释 ...
最新文章
- Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】
- 使用proxy来调用未定义的属性方法
- rhel6多台主机的HA集群,并实现增加仲裁盘和共享存储
- 树莓派3风扇安装方法
- 使用 Oracle Datapump API 实现数据导出
- 3.1.6 OS之分页存储(页号、页偏移量等)
- 循环队列 队空、队满 条件
- java构建json_Java构造和解析Json数据的两种方法详解一
- python樱花树画法图片_武大樱花又盛开,用Python画一棵樱花树
- 雷电游戏java源代码,java雷电游戏源码项目
- 三菱q plc modbus通讯协议详解_三菱PLC串口通讯模块QJ71C24N和MR-JE-A的modbus通讯
- postman|接口测试 | pre-request script 场景应用
- wifi扫描流程图_一种wifi扫描阶段进行身份识别的认证方法
- Sniffer报文捕获解析
- java中美元符号的作用_$美元符号在配置文件中的意义
- linux 蓝牙驱动
- 机器学习FP、TP、FN、TN、sensitivity、specificity及代码实现
- 工程管理系统源码-专注项目数字化管理-工程管理
- 2022泰迪杯数据分析技能赛B题方案及赛后总结:银行客户忠诚度分析
- 正弦分析2--三角函数线