Monolog是PHP中流行的PSR-3兼容日志库,支持将日志输出到文件、邮件、Sentry等目标;通过Composer安装后,可使用Logger创建日志通道,结合StreamHandler或RotatingFileHandler写入日志,并利用上下文信息记录结构化数据,提升应用可观测性。

在PHP项目中,良好的日志管理对调试、监控和故障排查至关重要。Monolog 是 PHP 社区中最流行的日志库之一,它遵循 PSR-3 日志接口标准,功能强大且易于扩展。通过 Monolog,你可以将日志输出到文件、系统日志、数据库、邮件、远程服务(如 Sentry、Slack)等多种目标。
安装 Monolog
使用 Composer 安装 Monolog:
composer require monolog/monolog安装完成后,Composer 会自动加载类文件,你可以在项目中直接使用。
基本使用:记录日志到文件
以下是一个简单的例子,展示如何使用 Monolog 将日志写入文件:
立即学习“PHP免费学习笔记(深入)”;
use Monolog\Logger;use Monolog\Handler\StreamHandler;
// 创建一个日志通道
$log = new Logger('name');
// 设置处理器:将日志写入指定文件
$log->pushHandler(new StreamHandler(__DIR__ . '/logs/app.log', Logger::DEBUG));
// 添加日志记录
$log->debug('这是一条调试信息');
$log->info('用户登录成功', ['user_id' => 123]);
$log->warning('磁盘空间不足');
$log->error('数据库连接失败');
上面代码中,Logger('name') 创建了一个名为 "name" 的日志通道,通常可按模块命名,如 'auth'、'payment' 等。
StreamHandler 指定日志输出路径和最低日志级别(如 DEBUG 会记录所有级别)。
使用不同处理器发送日志
Monolog 支持多种 Handler,可以根据需要组合使用:
Modoer 是一款以本地分享,多功能的点评网站管理系统。采用 PHP+MYSQL 开发设计,开放全部源代码。因具有非凡的访问速度和卓越的负载能力而深受国内外朋友的喜爱。在升级前一定要备份好自己的原版本,特别是自己设计了模板和修改了代码的用户。Modoer多功能点评系统 v1.2.5 Build 20111220更新列表修正 安全漏洞和安全隐患增加 后台登陆和SQL错误记录日志修复 若干小BUG
- StreamHandler:写入本地文件或 PHP 流
- RotatingFileHandler:按日期轮转日志文件
- SyslogHandler:写入系统日志
- NativeMailerHandler:通过邮件发送错误日志
- SentryHandler:发送到 Sentry 错误追踪平台
示例:每天生成一个日志文件
use Monolog\Handler\RotatingFileHandler;$log = new Logger('app');
$log->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/app.log', 0, Logger::INFO));
$log->info('应用启动');
RotatingFileHandler 会自动生成 app-YYYY-MM-DD.log 文件,并保留历史日志。
结构化日志与上下文信息
Monolog 支持在日志中添加上下文数据,便于排查问题:
$log->info('订单创建成功', ['order_id' => 'ORD123456',
'amount' => 99.99,
'user_ip' => '192.168.1.1'
]);
这些信息会以结构化格式(如 JSON)记录,方便后续分析。
基本上就这些。Monolog 配置灵活,适合从小型脚本到大型框架的各种项目。合理使用日志级别和处理器,能显著提升应用的可观测性。










