当前,我将需要的公用方法,写在 Helper 文件中,对应文件位置:
common\helper\Helper.php
<?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;
}
}
在需要记录相应日志的代码位置,可使用如下方法
$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);