如何使用php在生产环境封装一个打印日志的方法?

230 篇文章 9 订阅
58 篇文章 1 订阅

如何使用php在生产环境封装一个打印日志的方法?

前言

为防止项目上线后出现问题,不好定位,找不到原因,我们还是要依靠打印日志文件,找到bug出现的位置,所以,开发过程中,对可能出现错误的地方,打印日志是非常非常重要的一件事情!

封装LogService类

<?php

/*
 * 日志类
 * 每天生成一个日志文件
*/

class LogService
{
    public static function writeLog($data, $dir = '')
    {
    	//默认存放打印日志的目录
        $dir_path = __DIR__ . '/logs/';
        if ($dir) {
        	//ltrim移除字符串左侧的字符/,这里统一设置/
            $dir_path .= ltrim($dir, '/');
        }
        
        //检查当前目录是否存在
        if (!is_dir($dir_path)) {
            //如果不存在则生成目录权限为777
            mkdir($dir_path, 0777, true);
        }
        
        //rtrim移除字符串右侧的空白字符或其他预定义字符
        $filepath = rtrim($dir_path, '/') . '/' . date("Ymd") . '.log';
        //设置一个打印日志的起始文字
        $delimiter_start = "\n+---------------------------- log start -----------------------------+\n记录时间:" . date("Y-m-d H:i:s") . "\n";
          //设置一个打印日志的结束文字
        $delimiter_end = "\n+---------------------------- log end -----------------------------+\n";
        //将要打印的文字以json形式,并转义成中文的格式追加的指定目录中的日志文件内
        file_put_contents($filepath, $delimiter_start . json_encode($data, JSON_UNESCAPED_UNICODE) . $delimiter_end, FILE_APPEND);
    }

}

//要打印的数据
$msg = array(
    'name' => '奇葩天地网',
    'url' => 'www.qipa250.com',
    'short_name' => '奇葩250',
);
//静态函数,不用实例化,可以直接引用方法
LogService::writeLog($msg, 'qipa'); //写入日志到logs下的qipa目录中

?>

file_put_contents介绍

file_put_contents() 函数把一个字符串写入文件中。

该函数访问文件时,遵循以下规则:

如果设置了 FILE_USE_INCLUDE_PATH,那么将检查 *filename* 副本的内置路径
如果文件不存在,将创建一个文件
打开文件
如果设置了 LOCK_EX,那么将锁定文件
如果设置了 FILE_APPEND,那么将移至文件末尾。否则,将会清除文件的内容
向文件中写入数据
关闭文件并对所有文件解锁

如果成功,该函数将返回写入文件中的字符数。如果失败,则返回 False。

语法

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
参数描述
file必填项,指定数据需要写入的文件名称,若是文件不存在,则创建
data必填项,要写入文件的数据。可以是字符串、数组或数据流。
mode可选。规定如何打开/写入文件。可能的值: FILE_USE_INCLUDE_PATH, FILE_APPEND , LOCK_EX
context可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值