<?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)相关推荐

  1. Android APP 奔溃 ,如何在开发者选项观察错误日志

    如何抓取APP使用中崩溃的log日志 心得体会: app 崩溃后,在开发者选项中 点击发送完整报告,稍等一会,通知栏会有通知文件,大概小20M 1.收到的zip压缩包打开内容 2.关键代码 搜索关键字 ...

  2. 霓虹灯效果 函数 作用域

    1.霓虹灯效果 <!DOCTYPE html> <html><head><meta charset="utf-8"><titl ...

  3. kettle 作业调度

    本周项目上用到了kettle并且需要做任务调度,听老师说用kettle自带的调度不大稳定于是便baidu了下,参照这篇文章完成了通过kitchen的调度,简单说就是通过windows的计划任务来调用. ...

  4. [转载]Hadoop 2.X 日志文件和MapReduce的log文件研究心得

    之前一直不清楚MapReduce阶段System.out打印到哪儿去了.现在知道了,任务分发了节点后,是无法再客户端窗口查看的.要想查看,需要打开默认关闭的JobHistoryServer进程.存放在 ...

  5. java.lang.OutOfMemoryError:GC overhead limit exceeded填坑心得

    该文章出自:http://www.cnblogs.com/hucn/p/3572384.html 分析工具:http://www.blogjava.net/jjshcc/archive/2014/03 ...

  6. mysql主从数据库含义_(转)Mysql数据库主从心得整理

    管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...

  7. 山石网科-Hillstone-IPsec V_P_N常见故障debug排错心得终结版

    嗨,各位好. 相信各位过来点开的时候会鄙视一句"这厮,又来搞山石了",哈哈没错,这次确实又来了,不过这次带了点排错的心得过来,希望给未来在常见的配置过程当中,不知道怎么排错时候有些 ...

  8. 看了这篇 LeetCode 的刷题心得,再也不用抄别人代码了

    作者:VioletJack 原文:<LeetCode 算法题刷题心得>https://www.jianshu.com/p/8876704ea9c8 花了十几天,把<算法>看了一 ...

  9. linux shell 基础 使用日志与心得

    linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现 #!/bin/bash是指此脚本使用/bin/bash来解释执行. 其中,#!是一个特殊的表示符,其后,跟着解释 ...

最新文章

  1. Oracle总结第二篇【视图、索引、事务、用户权限、批量操作】
  2. 使用proxy来调用未定义的属性方法
  3. rhel6多台主机的HA集群,并实现增加仲裁盘和共享存储
  4. 树莓派3风扇安装方法
  5. 使用 Oracle Datapump API 实现数据导出
  6. 3.1.6 OS之分页存储(页号、页偏移量等)
  7. 循环队列 队空、队满 条件
  8. java构建json_Java构造和解析Json数据的两种方法详解一
  9. python樱花树画法图片_武大樱花又盛开,用Python画一棵樱花树
  10. 雷电游戏java源代码,java雷电游戏源码项目
  11. 三菱q plc modbus通讯协议详解_三菱PLC串口通讯模块QJ71C24N和MR-JE-A的modbus通讯
  12. postman|接口测试 | pre-request script 场景应用
  13. wifi扫描流程图_一种wifi扫描阶段进行身份识别的认证方法
  14. Sniffer报文捕获解析
  15. java中美元符号的作用_$美元符号在配置文件中的意义
  16. linux 蓝牙驱动
  17. 机器学习FP、TP、FN、TN、sensitivity、specificity及代码实现
  18. 工程管理系统源码-专注项目数字化管理-工程管理
  19. 2022泰迪杯数据分析技能赛B题方案及赛后总结:银行客户忠诚度分析
  20. 正弦分析2--三角函数线

热门文章

  1. 教你利用工具将单机游戏改造成对战网游
  2. 你常用的Nginx模块,用来做什么
  3. 去掉(不显示)关闭QQ游戏后跳出的广告
  4. RMAN 备份与恢复 实例
  5. python3.6.8下robot framework ride 测试环境搭建
  6. WSGI、uwsgi和uWSGI
  7. 【BZOJ 2721】 2721: [Violet 5]樱花 (筛)
  8. page cache 与free
  9. canvas学习之API整理笔记(一)
  10. Go丨语言学习笔记--func