php 自定义打日志类

1、实际项目中打日志是一个非常重要的一项工作,日志收集直接关系到系统后期优化和故障排查的重要依据,因此打印日志的规范化也直接影响到后期日志查看的便捷性

日志效果如下

代码如下

<?php


namespace app\index\controller;
/**
 * 使用说明:
 * 在构造方法中设置商户id和文件前缀
 *   LoggerUtils::setShopId(33);
 *   LoggerUtils::setFilePrefix('goods');
 * Class LoggerUtils
 * @package app\index\controller
 */
class LoggerUtils
{
    private static $shopId=0;
    private static $filePrefix='default_';

    /**
     * 设置文件前缀
     * @param string $filePrefix
     */
    public static function setFilePrefix($filePrefix)
    {
        self::$filePrefix = $filePrefix;
    }

    /**
     * 设置商户id
     * @param int $shopId
     */
    public static function setShopId($shopId)
    {
        self::$shopId = $shopId;
    }

    /**
     * 打印日志
     * @param null $content 日志描述
     * @param null $data    数据 string/array
     * @param false $isBr   是否换行 默认不换行
     */
    public static function log($content=null,$data=null,$isBr=false){
        $date = date('Y-m-d');
        $path = "./log/{$date}_openApiLog/";
        $time = date('Y-m-d H:i:s');
        if(!is_dir($path)){
            mkdir($path,0777);
        }
        $fileName = self::$filePrefix.'.'.self::$shopId.'.log';
        $uri = $path.$fileName;
        if(is_array($data)){
            $data=json_encode($data);
        }
        if($isBr){
            $isBr=PHP_EOL;
        }else{
            $isBr='';
        }
        $con = "[".$time."] ".$content.'#'.$data.PHP_EOL.$isBr;
        file_put_contents($uri,$con,FILE_APPEND);
    }
}

调用方式

class Index extends Frontend
{

    public function __construct(Request $request = null)
    {
        parent::__construct($request);
        
        LoggerUtils::setShopId(33);          //设置商户id
        LoggerUtils::setFilePrefix('goods'); //设置日志文件名
    }

    protected $noNeedLogin = '*';
    protected $noNeedRight = '*';
    protected $layout = '';

    public function index()
    {
        //打印日志
        LoggerUtils::log('商户原始数据','2222');              
        LoggerUtils::log('平台生成签名','fdafdafadsf',true);
    }

}

欢迎各位大佬指正

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值