前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2 advanced 框架,自定义Log日志方案

Yii2 advanced 框架,自定义Log日志方案

作者头像
泥豆芽儿 MT
发布2023-10-16 19:19:14
1660
发布2023-10-16 19:19:14
举报
文章被收录于专栏:木头编程 - moTzxx
  • 背景 近期在使用 【Yii2 advanced】框架时 在接触到 微信支付回调操作时,想要将微信服务器请求的参数信息记录下来 但是,不喜欢框架自带的日志配置方式 在此,推荐使用一种自定义文件目录与log记录形式的方案 希望有此需求的道友,能有所帮助,欢迎指摘 …

  • 源码:

当前,我将需要的公用方法,写在 Helper 文件中,对应文件位置:common\helper\Helper.php

代码语言:javascript
复制
<?php
/**
 * 平台常用方法
 */
namespace common\helper;

class Helper
{
    /**
     * Notes:日志记录
     * DateTime: 2023/4/21 16:56
     * @param $project_dir '项目名称目录'
     * @param $msg
     * @param string $note
     * @param string $file_name
     * @return bool
     */
    public static function addLog($project_dir, $msg, $note = '', $file_name = '')
    {
        if (empty($project_dir) || empty($msg)) {
            return false;
        }
        $project_dir = trim($project_dir);
        if (!in_array($project_dir, ['api', 'backend', 'clientapi', 'mpapi', 'merchant'])) {
            return false;
        }

        $save_log_msg = is_string($msg) ? $msg : json_encode($msg,JSON_UNESCAPED_UNICODE);
        if (!empty($note)) {
            $save_log_msg = '[' . $note . '] ==> ' . $save_log_msg;
        }
        $save_log_msg = '[' . date('Y-m-d H:i:s') . '] ==> ' . $save_log_msg;

        //保存文件名称
        $file_name = empty($file_name) ? date('Ymd').'_log.txt' : $file_name;
        
        $ds = DIRECTORY_SEPARATOR;
        $payDir = dirname(\Yii::$app->basePath);
        $save_dir = $payDir . $ds . $project_dir . $ds . 'log' . $ds ;
        if (!is_dir($save_dir)){
            mkdir($save_dir,0777);
        }
        file_put_contents($save_dir . $file_name, $save_log_msg . PHP_EOL, FILE_APPEND);
        return true;
    }
}
  • 调用方法参考:

在需要记录相应日志的代码位置,可使用如下方法

代码语言:javascript
复制
$array = json_decode(json_encode($postObj), TRUE);
$log_file = date("Ym").'_miniPay.txt';
Helper::addLog('mpapi',json_encode($array,JSON_UNESCAPED_UNICODE),'NotifyMiniPayPattern',$log_file);
  • 对应生成并记录的 log文件如下:
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档