日志类如下,news目录为当前php文档根目录下子目录。
<?php
if( ! defined('BASEPATH') ) {
define ('BASEPATH', $_SERVER['DOCUMENT_ROOT'].'/news/');
}
require_once BASEPATH.'config/config.inc.php';
require_once BASEPATH.'config/constants.php';
define ("LOG_PATH", $config['log']['log_path']);
define ("LOG_DATE_FORMAT", $config['log']['log_date_format']);
/* *
* Logging Class
* @subpackage Libraries
* @category Logging
* @link
*/
class CI_Log {
var $log_path = '../logs/';
var $_threshold = 4;
var $_date_fmt = 'Y-m-d H:i:s';
var $_enabled = TRUE;
var $_levels = array('ERROR' => '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4');
/* *
* Constructor
*
* @access public
*/
function CI_Log()
{
if( defined(LOG_PATH) )
{
$this->log_path = LOG_PATH;
}
if ( ! is_dir( $this->log_path))
{
$this->_enabled = FALSE;
}
if ( defined(LOG_DATE_FORMAT) )
{
$this->_date_fmt = LOG_DATE_FORMAT;
}
}
// --------------------------------------------------------------------
/* *
* 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').'.log';
$message = '';
if ( ! $fp = @ fopen( $filepath, FOPEN_WRITE_CREATE))
{
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, FILE_WRITE_MODE);
return TRUE;
}
}
// END Log Class
/* End of file Log.php */
if( ! defined('BASEPATH') ) {
define ('BASEPATH', $_SERVER['DOCUMENT_ROOT'].'/news/');
}
require_once BASEPATH.'config/config.inc.php';
require_once BASEPATH.'config/constants.php';
define ("LOG_PATH", $config['log']['log_path']);
define ("LOG_DATE_FORMAT", $config['log']['log_date_format']);
/* *
* Logging Class
* @subpackage Libraries
* @category Logging
* @link
*/
class CI_Log {
var $log_path = '../logs/';
var $_threshold = 4;
var $_date_fmt = 'Y-m-d H:i:s';
var $_enabled = TRUE;
var $_levels = array('ERROR' => '1', 'DEBUG' => '2', 'INFO' => '3', 'ALL' => '4');
/* *
* Constructor
*
* @access public
*/
function CI_Log()
{
if( defined(LOG_PATH) )
{
$this->log_path = LOG_PATH;
}
if ( ! is_dir( $this->log_path))
{
$this->_enabled = FALSE;
}
if ( defined(LOG_DATE_FORMAT) )
{
$this->_date_fmt = LOG_DATE_FORMAT;
}
}
// --------------------------------------------------------------------
/* *
* 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').'.log';
$message = '';
if ( ! $fp = @ fopen( $filepath, FOPEN_WRITE_CREATE))
{
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, FILE_WRITE_MODE);
return TRUE;
}
}
// END Log Class
/* End of file Log.php */
配置文件
config.inc.php
<?php
/* *
* 配置文件
*/
if( ! defined('BASEPATH') ) {
define ('BASEPATH', $_SERVER['DOCUMENT_ROOT'].'/news/');
}
// 数据库设定
$config['db']= array(
);
// 日志文件目录
$config['log']= array(
'log_date_format' => 'Y-m-d H:i:s',
'log_path' => '../logs/'
);
?>
/* *
* 配置文件
*/
if( ! defined('BASEPATH') ) {
define ('BASEPATH', $_SERVER['DOCUMENT_ROOT'].'/news/');
}
// 数据库设定
$config['db']= array(
);
// 日志文件目录
$config['log']= array(
'log_date_format' => 'Y-m-d H:i:s',
'log_path' => '../logs/'
);
?>
配置文件
constants.php
<?php
define('FILE_READ_MODE', 0644);
define('FILE_WRITE_MODE', 0666);
define('DIR_READ_MODE', 0755);
define('DIR_WRITE_MODE', 0777);
/*
|--------------------------------------------------------------------------
| File Stream Modes
|--------------------------------------------------------------------------
|
| These modes are used when working with fopen()/popen()
|
*/
define('FOPEN_READ', 'rb');
define('FOPEN_READ_WRITE', 'r+b');
define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
define('FOPEN_WRITE_CREATE', 'ab');
define('FOPEN_READ_WRITE_CREATE', 'a+b');
define('FOPEN_WRITE_CREATE_STRICT', 'xb');
define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
/* End of file constants.php */
define('FILE_READ_MODE', 0644);
define('FILE_WRITE_MODE', 0666);
define('DIR_READ_MODE', 0755);
define('DIR_WRITE_MODE', 0777);
/*
|--------------------------------------------------------------------------
| File Stream Modes
|--------------------------------------------------------------------------
|
| These modes are used when working with fopen()/popen()
|
*/
define('FOPEN_READ', 'rb');
define('FOPEN_READ_WRITE', 'r+b');
define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb'); // truncates existing file data, use with care
define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b'); // truncates existing file data, use with care
define('FOPEN_WRITE_CREATE', 'ab');
define('FOPEN_READ_WRITE_CREATE', 'a+b');
define('FOPEN_WRITE_CREATE_STRICT', 'xb');
define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');
/* End of file constants.php */