• php输出日志的实现


    php输出日志的实现

    思想:在想要输出log日志的地方,使用php的写入文件函数,把数据写入到事先定义好的文件中。

    php代码如下:
    //输出日志
        public function outputLog() {
            logOutput(time());
            sleep(3);
            $arr = array("k1" => "v1", "k2" => "v2");
            logOutput($arr);
    
            $this->display();
        }
    logOutput()函数:
    /**
     * @param  string,array  $data 需要输出到日志中的数据
     * @return null 
     */
    function logOutput($data) {
        //数据类型检测
        if (is_array($data)) {
            $data = json_encode($data);
        }
        $filename = "./log/".date("Y-m-d").".log";
        $str = date("Y-m-d H:i:s")."   $data"."
    ";
        file_put_contents($filename, $str, FILE_APPEND|LOCK_EX);
        return null;
    }
    

    2016-10-24_184658
    2016-10-24_184644

    file_put_contents() 函数把一个字符串写入文件中。
    与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
    语法
    file_put_contents(file,data,mode,context)
    参数	描述
    file	必需。规定要写入数据的文件。如果文件不存在,则创建一个新文件。
    data	可选。规定要写入文件的数据。可以是字符串、数组或数据流。
    mode	可选。规定如何打开/写入文件。可能的值:
            FILE_USE_INCLUDE_PATH
            FILE_APPEND    追加数据而不是覆盖
            LOCK_EX    写入数据时,锁住文件,防止其他人对文件的改动
    context	可选。规定文件句柄的环境。(不懂何用)
            context 是一套可以修改流的行为的选项。若使用 null,则忽略。
    • 意义:
    • 在可能出错的地方,进行调试时,输出错误信息
    • 输出变量,进行调试,可以避免平常的var_dump、dump函数打印一长串的数据,影响页面布局
    一直走下去,不容易
  • 相关阅读:
    深入理解TCP、UDP协议及两者的区别
    Java多线程之Executor框架
    Java中的线程池及其实现类ThreadPoolExecutor
    深入理解java虚拟机之Java对象头
    深入理解Java虚拟机之创建对象,即创建一个类的过程
    使用RedisTemplate操作Redis数据库
    深入理解Java虚拟机之运行时数据区域
    多线程之join方法
    线程之间的通信方式:wait/notify
    多线程之可见性:volatile
  • 原文地址:https://www.cnblogs.com/lpy001/p/5994170.html
Copyright © 2020-2023  润新知