首页
复制
搜索
前进
后退
重载网页
和我当邻居
给我留言吧
首页
关于
友链
留言
壁纸
Search
1
关于《杀死那个石家庄人》背后的故事
70 阅读
2
佳木斯的夜
34 阅读
3
PHP八大设计模式
32 阅读
4
以梦喂马
32 阅读
5
centos7安装Wkhtmltopdf
27 阅读
编程技术
网络安全
生活杂记
登录
Search
标签搜索
PHP
随笔
Mysql
Laravel-Admin
Laravel
设计模式
Ab
Linux
MAC
支付
CentOs
sh
如梦初醒
累计撰写
40
篇文章
累计收到
7
条评论
首页
栏目
编程技术
网络安全
生活杂记
页面
关于
友链
留言
壁纸
搜索到
2
篇与
的结果
2022-03-14
laravel 8 自定义日志文件名|自定义目录
环境{callout color="#f0ad4e"}基于Laravel 8{/callout}代码<?php /** * laravel的日志类不够用,根据项目日志习惯二次封装Monolog日志类 */ namespace App\Utils; use Illuminate\Support\Facades\DB; use Monolog\Formatter\LineFormatter; use Monolog\Logger; use Monolog\Handler\StreamHandler; class Logs { // 文件记录类型 1:文件目录/日期/文件名 2:所有日志一个文件夹 public function __construct() { } /** * @param $message * @param array $data * @param string $filename * @param string $isDate 是否按月份分文件夹 */ private static function _save($message, $data = [], $filename = 'log', $isDate = false) { $log = new Logger('mylog'); if (PHP_SAPI == 'cli') { // 命令行访问脚本的,加一个cli标识和用户浏览器访问的区分开 $filename .= '_cli'; } $filename = $filename . '.log'; if ($isDate) { // 是否要按日显示 $path = storage_path('logs/' . date('Y-m-d')); } else { $path = storage_path('logs/'); } // 有时候运维没给号权限,容易导致写入日志失败 self::mkDirs($path); $path = $path . '/' . $filename; if (gettype($data) != 'array') { $message .= " " . $data; $data = []; } $microtime = microtime(); $message = '[' . substr($microtime, 0, 8) . '] ' . $message;// 记录毫秒时间 // finally, create a formatter $formatter = new LineFormatter("[%datetime%] %message% %context%\n", "Y-m-d H:i:s"); $stream = new StreamHandler($path, Logger::INFO); $stream->setFormatter($formatter); $log->pushHandler($stream); $log->info($message, $data); } public static function info($message, $data = [], $filename = 'info', $isDate = true) { self::_save($message, $data, $filename, $isDate); } public static function debug($message, $data = [], $filename = 'debug') { self::_save($message, $data, $filename, true); } /** * @param $message * @param array $data * @param string $filename */ public static function error($message, $data = [], $filename = 'error') { // 错误日志不会太多,按单文件记录可以了,默认$isDate=false self::_save($message, $data, $filename, true); } /** * 给日志文件夹权限 * @param $dir * @param int $mode * @return bool */ public static function mkDirs($dir, $mode = 0777) { if (is_dir($dir) || @mkdir($dir, $mode)) { return TRUE; } if (!self::mkdirs(dirname($dir), $mode)) { return FALSE; } return @mkdir($dir, $mode); } public static function sql($file_name = 'sql', $is_date = true) { DB::listen(function ($sql) use ($file_name, $is_date) { foreach ($sql->bindings as $i => $binding) { if ($binding instanceof \DateTime) { $sql->bindings[$i] = $binding->format('\'Y-m-d H:i:s\''); } else { if (is_string($binding)) { $sql->bindings[$i] = "'$binding'"; } } } $query = str_replace(array('%', '?'), array('%%', '%s'), $sql->sql); $query = vsprintf($query, $sql->bindings); Logs::info('sql:', $query, $file_name, $is_date); }); } } 调用// 按日 按文件名 Logs::info('A 数组',['a','b'],'order',true); // 按文件名 Logs::info('A 数组',['a','b'],'order'); // 只有字符串 Logs::info('B 字符串'); // 记录下面的执行sql Logs::sql(); // 输出: // [2021-04-15 11:50:37] [0.627499] sql:select * from `user` where `mobile` = '' limit 1 []原文链接:https://blog.csdn.net/qq_24935119/article/details/115720243
2022年03月14日
15 阅读
0 评论
0 点赞
2021-11-13
laravel分页 | 笔记
$page = $request->get('page')?$request->get('page'):1; //页数 $show = $request->get('show')?$request->get('show'):15; // 每页显示 $res = DB::table(self::$table) ->where("", '', ) ->offset(($page-1)*$show)->limit($show)->get();
2021年11月13日
16 阅读
0 评论
0 点赞