laravel: 日志配置

一,日志按天切分:

修改.env

root@lhdpc:/data/api# vi .env

指定LOG_CHANNEL值为daily即可,代码:

LOG_CHANNEL=daily

二,配置laravel日志中记录url/方法/参数

1,config/logging.php

        'daily' => ['driver' => 'daily','path' => storage_path('logs/laravel.log'),'level' => env('LOG_LEVEL', 'debug'),'days' => env('LOG_DAILY_DAYS', 14),'replace_placeholders' => true,'process_psr7' => true,'tap' => [App\extend\logging\RequestLogHandler::class],],

2,App\extend\logging\RequestLogHandler类:

<?php
namespace App\extend\logging;use Illuminate\Log\Logger;
use Monolog\Formatter\LineFormatter;class RequestLogHandler
{/*** 自定义给定的日志记录器实例。*/public function __invoke(Logger $logger): void{foreach ($logger->getHandlers() as $handler) {$url = request()->fullUrl();$method = request()->method();$parameters = request()->all();$formatted = "{$method} {$url} with parameters: " . json_encode($parameters)."\n";$handler->setFormatter((new LineFormatter('[%datetime%] %channel%.%level_name%: '.$formatted.' %message% %context% %extra%'."\n"))->includeStacktraces());}}
}

3,查看日志中的效果:

[2024-09-18T13:49:54.339678+08:00] local.ERROR: POST http://192.168.219.6/api/virtual/valid?content=test1111 with parameters: {"content":"test1111"}Division by zero {"exception":"[object] (DivisionByZeroError(code: 0): Division by zero at /data/api/app/Http/Controllers/Controller.php:109)
[stacktrace]
#0 /data/api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(46): App\\Http\\Controllers\\Controller->valid()
#1 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(260): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#2 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(206): Illuminate\\Routing\\Route->runController()
#3 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(808): Illuminate\\Routing\\Route->run()
#4 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#5 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#7 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(807): Illuminate\\Pipeline\\Pipeline->then()
#9 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(786): Illuminate\\Routing\\Router->runRouteWithinStack()
#10 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(750): Illuminate\\Routing\\Router->runRoute()
#11 /data/api/vendor/laravel/framework/src/Illuminate/Routing/Router.php(739): Illuminate\\Routing\\Router->dispatchToRoute()
#12 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(200): Illuminate\\Routing\\Router->dispatch()
#13 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(144): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#14 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closur
e}()
#15 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsR
equest->handle()
#16 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#17 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closur
e}()
#18 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(51): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle
()
#19 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#20 /data/api/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\ValidatePostSize->handle()
#22 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(110): Illuminate\\Pipeline\\Pipeline->Illuminate\\P
ipeline\\{closure}()
#23 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#24 /data/api/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php(62): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\HandleCors->handle()
#26 /data/api/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#27 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(183): Illuminate\\Http\\Middleware\\TrustProxies->handle()
#28 /data/api/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(119): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#29 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(175): Illuminate\\Pipeline\\Pipeline->then()
#30 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(144): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#31 /data/api/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(1188): Illuminate\\Foundation\\Http\\Kernel->handle()
#32 /data/api/public/index.php(17): Illuminate\\Foundation\\Application->handleRequest()
#33 {main}
"} []

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/799328.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文带你精通二项式反演!不服来看!

前言 原题:《二项式反演学习笔记》。 这里有我关于二项式反演的一些思考和领会,包含理论推导和在信息学竞赛中的应用。网络上的教程都太潦草了,难以深入理解。因此,这里将以详细的证明为主,介绍二项式反演在 OI 中的使用。 如果你只想快速浏览结论,可以点击这里查看结论。…

解决ZBLOG网站运行中出现JavaScript加载失败问题

当 Z-Blog 网站运行中出现“JavaScript 加载失败”的问题时,可能的原因有几个方面,包括但不限于插件冲突、HTTPS 配置问题、CDN 问题等。以下是针对这些问题的一些解决方案: 1. 插件冲突问题描述:某些插件可能与 Z-Blog 核心或其他插件存在冲突,导致 JavaScript 无法正常加…

zblog 404.php 怎么写,zblogphp主题错误之模板选择

在 Z-Blog PHP 中,如果你想要自定义 404 页面(即当用户访问不存在的页面时显示的页面),你可以创建一个 404.php 文件。下面是创建一个简单的 404 页面的基本步骤和示例代码: 创建 404.php 文件创建文件:在你的主题目录中创建一个名为 404.php 的文件。 添加基本 HTML 结构…

zblog上传安装主题插件不成功的原因和解决办法

当在 Z-Blog 中上传安装主题或插件不成功时,可能的原因有很多。下面列出了一些常见的原因及相应的解决办法: 1. 文件大小超出限制问题描述:上传的文件包可能超出了服务器允许的最大文件大小。 解决方法:检查后台的“全局设置”中的“允许上传文件的大小”,并适当增大这个值…

本地调试多服务

本地idea如果同一个服务,想开多个服务,只需要改下端口重新启动,配置如下 1、打开idea的Services (老版本的idea应该是Run bashboard) 2、如图所示的两个stockApplication就是相同的服务,不同的端口 3、点击其中一个StockApplication8082右击找到Copy Configuration 这样…

zblog显示Allowed memory size of 6553652 bytes exhauste

当 Z-Blog 显示 “Allowed memory size of 6553652 bytes exhausted” 错误时,这意味着 PHP 的内存限制已达到上限。这种错误通常发生在处理大量数据或执行复杂操作时。以下是解决此问题的一些常见步骤: 1. 增加 PHP 内存限制 方法一:修改 php.ini 文件定位 php.ini 文件找到…

zblog应用中心连接失败的解决方案

当 Z-Blog 应用中心连接失败时,这通常意味着服务器无法正常访问应用中心的服务器。以下是解决此类问题的一些常见步骤: 1. 检查网络连接问题描述:网络连接可能不稳定或中断。 解决方法:确认服务器可以正常访问互联网。 尝试 ping 应用中心的服务器地址,例如:shping appce…

C++信奥老师解一本通题 1164:digit函数

​ 【题目描述】在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。【输入】正整数n和k。【输出】一个数字。【输入样例】 31859 3 【输出样例】 8#include <iostream> using namespace std; int digit(long long n,int k) {if(k==1)return n%10;return …

zblog添加html后台出错,zblog后台设置固定域名绑定错误

当在 Z-Blog 中遇到添加 HTML 后台出错或后台设置固定域名绑定错误时,这通常意味着在配置或设置过程中出现了问题。以下是一些排查和解决步骤: 1. 检查域名绑定问题描述:域名可能未正确绑定到服务器。 解决方法:确认域名已正确绑定到服务器。 检查 DNS 设置,确保域名指向正…

zblog域名后无法访问 zblog数据库地址修改

当 Z-Blog 在修改域名后无法访问时,这通常意味着数据库中的某些配置没有正确更新。以下是解决此类问题的一些建议步骤: 1. 检查数据库配置问题描述:数据库配置可能未正确更新。 解决方法:登录到数据库管理工具(如 phpMyAdmin)。 找到 Z-Blog 的数据库。 检查数据库中的 z…

zblog后台编辑模块式时提示“UNKNOWN:未查询到相关数据”

当在 Z-Blog 后台编辑模块时提示 “UNKNOWN:未查询到相关数据”,这通常意味着后端查询数据库时未能找到预期的数据。以下是一些可能的原因及解决办法: 1. 数据库查询错误问题描述:查询语句可能有误或数据库表结构发生变化。 解决方法:检查数据库查询语句是否正确。 确认数据…

软件工程个人作业(第二次)

这个作业属于哪个课程 软件工程这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13253这个作业的目标 熟悉并利用AIGC开发较为简单的小游戏学号 102202117项目介绍 Github仓库链接:https://github.com/nianyingyuan/Shao-a-shao 游戏介绍 1,游戏采用…