php中的日志类的使用,php 日志类

/** * php日志类 * Date: 2017-08-27 * Author: fdipzone * Version: 1.0 * * Description: * 1.自定义日志根目录及日志文件名称。 * 2.使用日期时间格式自定义日志目录。 * 3.自动创建不存在的日志目录。 * 4.记录不同分类的日志,例如信息日志,警告日志,错误日志。 * 5.可自定义日志配置,日志根据标签调用不同的日志配置。 * * Func * public static set_config 设置配置 * public static get_logger 获取日志类对象 * public info 写入信息日志 * public warn 写入警告日志 * public error 写入错误日志 * private add 写入日志 * private create_log_path 创建日志目录 * private get_log_file 获取日志文件名称 */

class LOG {

// 日志根目录

private $_log_path = '.';

// 日志文件

private $_log_file = 'default.log';

// 日志自定义目录

private $_format = 'Y/m/d';

// 日志标签

private $_tag = 'default';

// 总配置设定

private static $_CONFIG;

/** * 设置配置 *@param Array $config 总配置设定 */

public static function set_config($config=array()){

self::$_CONFIG = $config;

}

/** * 获取日志类对象 *@param Array $config 总配置设定 *@return Obj */

public static function get_logger($tag='default'){

// 根据tag从总配置中获取对应设定,如不存在使用default设定

$config = isset(self::$_CONFIG[$tag])? self::$_CONFIG[$tag] : (isset(self::$_CONFIG['default'])? self::$_CONFIG['default'] : array());

// 设置标签

$config['tag'] = $tag!='' && $tag!='default'? $tag : '-';

// 返回日志类对象

return new LOG($config);

}

/** * 初始化 *@param Array $config 配置设定 */

public function __construct($config=array()){

// 日志根目录

if(isset($config['log_path'])){

$this->_log_path = $config['log_path'];

}

// 日志文件

if(isset($config['log_file'])){

$this->_log_file = $config['log_file'];

}

// 日志自定义目录

if(isset($config['format'])){

$this->_format = $config['format'];

}

// 日志标签

if(isset($config['tag'])){

$this->_tag = $config['tag'];

}

}

/** * 写入信息日志 *@param String $data 信息数据 *@return Boolean */

public function info($data){

return $this->add('INFO', $data);

}

/** * 写入警告日志 *@param String $data 警告数据 *@return Boolean */

public function warn($data){

return $this->add('WARN', $data);

}

/** * 写入错误日志 *@param String $data 错误数据 *@return Boolean */

public function error($data){

return $this->add('ERROR', $data);

}

/** * 写入日志 *@param String $type 日志类型 *@param String $data 日志数据 *@return Boolean */

private function add($type, $data){

// 获取日志文件

$log_file = $this->get_log_file();

// 创建日志目录

$is_create = $this->create_log_path(dirname($log_file));

// 创建日期时间对象

$dt = new DateTime;

// 日志内容

$log_data = sprintf('[%s] %-5s %s %s'.PHP_EOL, $dt->format('Y-m-d H:i:s'), $type, $this->_tag, $data);

// 写入日志文件

if($is_create){

return file_put_contents($log_file, $log_data, FILE_APPEND);

}

return false;

}

/** * 创建日志目录 *@param String $log_path 日志目录 *@return Boolean */

private function create_log_path($log_path){

if(!is_dir($log_path)){

return mkdir($log_path, 0777, true);

}

return true;

}

/** * 获取日志文件名称 *@return String */

private function get_log_file(){

// 创建日期时间对象

$dt = new DateTime;

// 计算日志目录格式

return sprintf("%s/%s/%s", $this->_log_path, $dt->format($this->_format), $this->_log_file);

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值