一个简单的开源PHP日志类

原创 2011年01月25日 13:38:00

<?php 
/**
 * Logging Class
 *
 * @package  CodeIgniter
 * @subpackage Libraries
 * @category Logging
 * @author  ExpressionEngine Dev Team
 * @link  http://codeigniter.com/user_guide/general/errors.html
 */
class CI_Log {
 
 var $log_path = '../logs/';
 var $_threshold = 3;
 var $_date_fmt = 'Y-m-d H:i:s:ms';
 var $_enabled = TRUE;
 var $_levels = array('ERROR' => '1', 'DEBUG' => '2',  'INFO' => '3', 'ALL' => '4');
   
 /**
  * Constructor
  *
  * @access public
  */
 function CI_Log()
 {
  if ( ! is_dir($this->log_path))
  {
   mkdir($this->log_path, 0777);
  }
 }
 
 // --------------------------------------------------------------------
 
 /**
  * Write Log File
  *
  * Generally this function will be called using the global log_message() function
  *
  * @access public
  * @param string the error level
  * @param string the error message
  * @param bool whether the error is a native PHP error
  * @return bool
  */  
 function write_log($level = 'error', $msg, $php_error = FALSE)
 {  
  if ($this->_enabled === FALSE)
  {
   return FALSE;
  }
 
  $level = strtoupper($level);
  
  if ( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold))
  {
   return FALSE;
  }
 
  $filepath = $this->log_path.'log-'.date('Y-m-d').'.txt';
  $message  = "/r";
  
  
  if ( ! $fp = @fopen($filepath, 'a+'))
  {
   return FALSE;
  }

  $message .= $level.' '.(($level == 'INFO') ? ' -' : '-').' '.date($this->_date_fmt). ' --> '.$msg."/n";
  
  flock($fp, LOCK_EX); 
  fwrite($fp, $message);
  flock($fp, LOCK_UN);
  fclose($fp);
 
  @chmod($filepath, 0666);   
  return TRUE;
 }

}

?>

 

test-------------------------------------------------------------------------------------------------------------------

 

<?php
  include_once('CI_Log.class.php');
  date_default_timezone_set('PRC');

  $Log = new CI_Log();
  $Log->write_log('debug','->begin',false);
  $Log->write_log('debug','->end',false);
?>

一个简单php日志类

日志类如下,news目录为当前php文档根目录下子目录。  
  • lxzo123
  • lxzo123
  • 2011年04月29日 09:56
  • 5419

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类实现的功能:- 在实例化的时候能设置连接字符集- 在实例化的时候能连接数据库- 在实例化的时候能选择默认数据库- 销毁对象时关闭数据库代码如下:...
  • u014044821
  • u014044821
  • 2015年06月02日 23:34
  • 1332

分享一个用了很久的php日志类

  • zll_liang
  • zll_liang
  • 2012年09月07日 17:00
  • 7793

封装php的Log类

记录log,对于很多人而言是很简单或者低级的事情。但是,随着项目经验的增长,遇到生产环境中bug数的增多,至少对于我来说,日志的重要性日益增加。 这次,需要对项目中log类进行重构,主要希望实现4个...
  • wide288
  • wide288
  • 2014年05月07日 19:06
  • 3348

关于使用C#编写一个简单的日志类

最近在项目中编写的log类,在博客上记录一下。 在调用的时候会按照当前时间自动生成对应的日志文件。代码如下: using System; using System.Collections.Gene...
  • carlblack1987
  • carlblack1987
  • 2017年03月24日 16:32
  • 276

快速入手开源日志分析系统logstash

快速入手开源日志分析系统logstashlogstash是一个独立的系统,除了可应用于ElasticSearch,还可以应用于redis,消息队列,或者我们自己写项目里也可以独立去使用它。大家常说到的...
  • github_26672553
  • github_26672553
  • 2017年06月06日 15:17
  • 680

C++实现一个简洁而又强大的日志记录类

代码执行时记录日志是很有必要的,尤其在涉及到多进程、多线程调试或者是调试服务程序时。本分分享一个最近写的简单的日志类,希望有所帮助。不喜欢废话,上代码了: 头文件如下: #pragma once #i...
  • mfcing
  • mfcing
  • 2014年12月18日 15:46
  • 6922

PHP最简单写文件记日志当前时间

定义和用法fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。语法fopen(filename,mode,include_path,context)参数描述filename...
  • 21aspnet
  • 21aspnet
  • 2011年09月21日 19:12
  • 6028

PHP日志处理类

PHP日志处理类
  • df282922334
  • df282922334
  • 2016年05月26日 10:02
  • 589

php中自定义日志处理类(类似于java中的log4j)

/** * @(#)logger.php * PHP version 5.2.3 * * * Copyright 2007 SoftRoad. All Rights Reserved. * *====...
  • joliny
  • joliny
  • 2007年06月20日 15:33
  • 1415
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个简单的开源PHP日志类
举报原因:
原因补充:

(最多只允许输入30个字)