本文实例讲述了PHP日志LOG类定义与用法。分享给大家供大家参考,具体如下:

/**

* PHP log 类

*/

class Config{

public static function getConfig (){

return array(

'LOG_FILE'=>'test.txt',

'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(){

$cfg = Config::getConfig();

$this->logLevel = isset($cfg['LOG_LEVEL']) ? $cfg['LOG_LEVEL']:LOG::INFO;

if(!isset($cfg['LOG_FILE']) && strlen($cfg['LOG_FILE'])){

throw new Exception('can\'t set file to empty');

}

$this->LogFile = @fopen($cfg['LOG_FILE'],'a+');

if(!is_resource($this->LogFile)){

throw new Exception('invalid file Stream');

}

}

public static function getInstance(){

static $obj;

if(!isset($obj)){

$obj = new Log();

}

return $obj;

}

public function LogMessage($msg, $logLevel = Log::INFO,$module = null){

if($logLevel > $this->logLevel){

return ;

}

date_default_timezone_set('Asia/shanghai');

$time = strftime('%x %X',time());

$msg = str_replace("\t",'',$msg);

$msg = str_replace("\n",'',$msg);

$strLogLevel = $this->levelToString($logLevel);

if(isset($module)){

$module = str_replace(array("\n","\t"),array("",""),$module);

}

$logLine = "$time\t$msg\t$strLogLevel\t$module\r\n";

fwrite($this->LogFile,$logLine);

}

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;

}

}

$logIns = LOG::getInstance();

//print_r($logIns);

$logIns->logMessage("test",LOG::INFO,'myTest');

?>

运行程序,在当前目录下生成test.txt文件内容如下(这里是运行3次的结果):

09/06/18  14:56:20 test LOG::INFO myTest

09/06/18  14:56:21 test LOG::INFO myTest

09/06/18  14:56:22 test LOG::INFO myTest

希望本文所述对大家PHP程序设计有所帮助。

php log日志管理,PHP日志LOG类定义与用法示例相关推荐

  1. php添加背景图及设置格式,PHP添加PNG图片背景透明水印操作类定义与用法示例

    本文实例讲述了PHP添加PNG图片背景透明水印操作类定义与用法.分享给大家供大家参考,具体如下: 图片相关操作类 class ImageTool { private $imagePath;//图片路径 ...

  2. 日志管理-NLog日志框架简写用法

    日志管理-NLog日志框架简写用法 本文转载:http://www.blogjava.net/qiyadeng/archive/2013/02/27/395799.html 在.net中也有非常多的日 ...

  3. Linux日志管理(日志配置、日志轮替)

    Linux日志管理   对运维人员来说,无论管理什么系统,对日志文件的监控.调用.管理都是其中重要的一部分.服务器问题的解决都是从查看系统(错误)日志开始的.本篇文章,我们就来了解一下Linux系统中 ...

  4. phppage类封装分页功能_PHP封装的page分页类定义与用法完整示例

    本文实例讲述了PHP封装的page分页类定义与用法.分享给大家供大家参考,具体如下: 亲测有效,见下图=========> 1. 测试实例test.php header("Conten ...

  5. 【Linux】日志管理及日志轮询

    文章目录 日志管理的意义 常用的日志文件: last 查看登录日志内容 清空日志文件 2. /var/log/lastlog 查看最后登录信息 3. /var/log/btmp 用户登录系统的错误信息 ...

  6. linux日志服务是哪个,『学了就忘』Linux日志管理 — 2.日志服务rsyslogd

    1.日志文件格式 只要是由日志服务rsyslogd记录的日志文件,他们的格式是一样的. 基本日志格式包含以下内容: 事件产生的时间. 发生事件的服务器的主机名. 产生事件的服务名或程序名. 事件的具体 ...

  7. 使用java自带的日志管理_java日志管理

    1.相关概念 日志统一框架(日志门面):apache commons logging.slf4j 日志实现框架(实现层):JDK自带的logging(java.util.logging).log4j. ...

  8. Apache的配置与应用【Apache访问控制】以及apache日志管理【日志分割、awstats日志分析】

    Apache的配置与应用以及日志管理 文章目录 Apache的配置与应用以及日志管理 一.Apache连接和访问控制 1.Apache连接 [1]KeepAlive [2]KeepAlive Time ...

  9. Linux系统中的日志管理 ---systemd-journald日志(journalctl命令的用法)和 rsyslog 日志(自定义日志采集路径、更改日志采集格式和日志的远程同步)

    一.实验环境 Horizon_carry: 172.25.254.10 carry: 172.25.254.20 Horizon_carry & carry: systemctl stop f ...

最新文章

  1. 搜索打表大找规律 (hdu2045)
  2. matlab练习程序(LMS)
  3. QT显式调用VC开发的DLL
  4. ASP.NET中实现Flash与.NET的紧密集成(转,没看,有空研究一下)
  5. Lawn of the Dead
  6. android改变下拉框字体颜色,有没有简单的方法来改变Android中的Spinner下拉颜色?...
  7. python保存变量_Python变量存储
  8. php与tp5,PHP开发(33)-ThinkPHP5.0(5)命名空间与TP5-PhpStorm
  9. P1950 长方形_NOI导刊2009提高(2)[单调栈][贡献法]
  10. swing Ctrl+S 保存配置
  11. 使用Go构建区块链 第3部分:持久化和cli
  12. antv g2字体阴影_antv/G2 v4使用遇坑之旅
  13. 数据库SQL(基础代码)
  14. GIS-坐标系-EPSG(二次整理)
  15. 树莓派3b+安装home assistant
  16. ICCV、ECCV、CVPR三大国际会议
  17. 一种基于蜂窝信令数据的数据驱动型OD矩阵构建的方法:以里昂地区(法国)作为研究...
  18. 轩小陌的Python笔记-day08 模块一总结
  19. CAN接口电路的 EMC设计方案(工业)
  20. ACM斗牛游戏算法JAVA实现

热门文章

  1. PyTorch学习笔记(三):PyTorch主要组成模块
  2. 大数据质量管理策略有哪些
  3. 企业大数据营销需要什么思路
  4. java学习(三)内部类
  5. 《python自动化》学习笔记:正则表达式基础知识
  6. C语言字符串类型转换为整型,c语言中将一个字符串转换到整型数据类型的函数是什么?...
  7. 永恒python怎么用_毫无基础的人如何入门 Python ?Python入门教程拿走不谢啦!
  8. 石子合并简化版(区间DP)
  9. c语言代码题及答案,c语言编程题精选及答案
  10. 机器人水库涵洞检测_管渠清淤机器人、管道浑水探测机器人……想不到吧?哈排水集团竟然是“科研达人”...