Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道
发布时间 - 2025-12-19 00:00:00 点击率:次Laravel日志系统基于Monolog构建,支持文件、数据库、Slack等多种渠道。通过config/logging.php配置通道,如single、daily、slack等,默认使用stack驱动聚合多个通道。可在.env中设置LOG_CHANNEL指定默认通道。可自定义通道如payment,按天分割日志并保留14天,写入特定文件。支持添加Monolog处理器和格式化器,如设置级别为warning,自定义日志格式。还可运行时动态创建日志实例,用于临时任务。系统灵活,便于问题排查。
Laravel 的日志系统基于强大的 Monolog 库构建,提供了灵活的日志记录方式。你可以轻松将日志写入文件、标准输出、数据库、Slack、Telegram 等多种渠道。Laravel 通过配置驱动来管理不同的日志“通道”,让你能根据环境和需求选择合适的方式记录错误、调试信息或关键事件。
默认日志配置
Laravel 的日志配置文件位于 config/logging.php。该文件定义了多个日志通道(channels),每个通道代表一种日志输出方式。默认情况下,Laravel 使用 stack 驱动作为主通道,它可以聚合多个日志通道。
常见内置驱动包括:
- single:单个日志文件(storage/logs/laravel.log)
- daily:按天分割日志文件,最多保留几天
- slack:发送日志到 Slack 频道
- syslog:写入系统日志
- errorlog:使用 PHP 的 error_log 函数
- stderr:输出到标准错误流
stack。
自定义日志通道
你可以在 config/logging.php 中的 channels 数组里添加自定义通道。例如,创建一个专门记录支付相关日志的 daily 类型通道:
'payment' => [
'driver' => 'daily',
'path' => storage_path('logs/payment.log'),
'level' => 'debug',
'days' => 14,
],
然后在代码中使用这个通道:
\Log::channel('payment')->info('订单支付成功', ['order_id' => 12345]);
这会将信息写入 storage/logs/payment-2025-04-05.log(按日期命名)。
使用 Monolog 自定义处理器和格式化器
Laravel 允许你在通道中注册 Monolog 的处理器(Handler)和格式化器(Formatter),实现更精细控制。
例如,添加一个只记录警告及以上级别的处理器,并自定义输出格式:
'custom_file' => [
'driver' => 'monolog',
'handler' => \Monolog\Handler\StreamHandler::class,
'with' => [
'stream' => storage_path('logs/custom.log'),
],
'level' => 'warning',
'formatter' => \Monolog\Formatter\LineFormatter::class,
'formatter_with' => [
'format' => "[%datetime%] %level_name%: %message% %context% %extra%\n",
'date_format' => 'Y-m-d H:i:s',
],
],
这样配置后,只有 warning、error 等级别日志会被写入,且格式清晰统一。
运行时动态写入不同日志
除了预定义通道,你也可以在代
码中动态创建日志实例:
$logger = new \Monolog\Logger('runtime');
$logger->pushHandler(new \Monolog\Handler\StreamHandler(storage_path('logs/runtime.log'), \Monolog\Logger::INFO));
$logger->info('运行时日志', ['data' => 'example']);
适用于临时任务或特殊模块的日志隔离。
基本上就这些。Laravel 日志系统足够灵活,既能满足日常开发需求,也能通过 Monolog 扩展支持复杂场景。合理使用多通道和级别控制,能让日志更清晰、便于排查问题。
# laravel
# php
# 处理器
# ai
# stream
# 配置文件
# 2025
# Error
# Logging
# 事件
# 数据库
# 自定义
# 多个
# 你可以
# 等多种
# 最多
# 几天
# 你在
# 也能
# 适用于
# 可在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Android仿QQ列表左滑删除操作
如何快速生成高效建站系统源代码?
公司门户网站制作流程,华为官网怎么做?
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
使用spring连接及操作mongodb3.0实例
如何在搬瓦工VPS快速搭建网站?
活动邀请函制作网站有哪些,活动邀请函文案?
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址
Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】
奇安信“盘古石”团队突破 iOS 26.1 提权
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
node.js报错:Cannot find module 'ejs'的解决办法
如何彻底卸载建站之星软件?
免费网站制作appp,免费制作app哪个平台好?
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
网站建设整体流程解析,建站其实很容易!
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
Python制作简易注册登录系统
jQuery validate插件功能与用法详解
Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
制作公司内部网站有哪些,内网如何建网站?
如何快速查询域名建站关键信息?
Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何在建站之星绑定自定义域名?
长沙做网站要多少钱,长沙国安网络怎么样?
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel怎么在Blade中安全地输出原始HTML内容
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
如何在阿里云域名上完成建站全流程?
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Python数据仓库与ETL构建实战_Airflow调度流程详解
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
Android中AutoCompleteTextView自动提示
桂林网站制作公司有哪些,桂林马拉松怎么报名?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
利用 Google AI 进行 YouTube 视频 SEO 描述优化
Bootstrap整体框架之CSS12栅格系统
教你用AI润色文章,让你的文字表达更专业
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?

