php简单实现 记录接口请求日志
先看使用效果
执行代码:
public function mainLogic()
{
logs(); // 在接口开始时调用,可以放到父类的构造方法里面
// 接口逻辑....
}
请求参数:
日志:
封装的代码:
/**
* 写入日志
* @param array | string $content 日志内容
* @param string $filename 文件名
* @param string $type 自定义标签
* @param bool $isDistinguishDay 是否区分天存放
* @return bool|int
*/
public static function log($content, $filename, $type = 'info', $isDistinguishDay = true)
{
$path = dirname(__DIR__). '/runtime/myLog/'; // 自定义路径
if (!file_exists($path)) {
@mkdir($path, 0755); // 权限设置
}
if ($isDistinguishDay) {
$logFile = $path . $filename . "-" . date("Ymd") . ".log";
} else {
$logFile = $path . $filename . ".log";
}
if (is_array($content) || is_object($content)) { // 便于一些数组传参
$content = json_encode($content);
}
$date = date("Y-m-d H:i:s");
return file_put_contents($logFile, $date . " [$type] " . $content . PHP_EOL, FILE_APPEND);
}
// 日志记录
function logs()
{
$type = strtolower(\request()->method()); // 识别请求方式
$logMsg = "请求者的ip是 ".\request()->server()['REMOTE_ADDR']." ,
当前请求类型是:".$type.' ,接口是:'.\request()->url().' ,
请求参数是'.json_encode(input("$type."),JSON_UNESCAPED_UNICODE);
\Common::log($logMsg, 'commonLog'); // 调用上面的方法
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!