❤️❤️❤️❤️❤️❤️ 我们已经正式推出微信小程序,在微信中搜索 TrendForge Pro 即可使用小程序,如果使用 Telegram 请搜索 trendforge_tg ❤️❤️❤️❤️❤️❤️

Seldaek

Seldaek/monolog

PHP 一般
163
2026-05-14
21k
+1
#10
1.9k

项目介绍

将日志发送到文件、套接字、收件箱、数据库及各类网络服务

Sends your logs to files, sockets, inboxes, databases and various web services

智能解读

点击生成更详细的项目介绍

智能标签

生成技术栈、用途、特征、受众等多维度标签

使用场景

使用场景 自动生成

Monolog最适合需要灵活、可扩展日志系统的PHP项目,尤其是需要多通道输出、分级过滤、第三方服务集成和自定义格式化的场景。

1

多通道日志记录

开发时需要在控制台看到日志,生产环境却要写入文件并发送告警邮件,手动切换配置很麻烦。

Monolog支持同时配置多个Handler,比如StreamHandler写入文件、BrowserConsoleHandler输出到浏览器控制台、NativeMailerHandler发送邮件,只需在初始化Logger时添加多个Handler即可。

开发环境:Logger添加StreamHandler和BrowserConsoleHandler;生产环境:Logger添加StreamHandler和NativeMailerHandler,通过环境变量切换配置。

2

日志分级与过滤

日志文件里充斥着大量DEBUG信息,导致难以定位ERROR级别的错误。

Monolog支持按日志级别过滤,可以为每个Handler设置最低日志级别,例如StreamHandler只记录WARNING及以上日志,而FileHandler记录所有级别。

使用StreamHandler('php://stderr', Logger::WARNING)只输出警告和错误到标准错误流,避免调试信息干扰。

3

第三方服务集成

需要将应用错误实时推送到Slack、Sentry或日志聚合平台,但每个服务都有不同API,集成成本高。

Monolog内置了SlackHandler、SlackWebhookHandler、SentryHandler等数十种第三方Handler,只需简单配置即可将日志推送到对应服务。

使用SlackWebhookHandler('https://hooks.slack.com/services/xxx', 'channel', 'botname'),当ERROR发生时自动发送通知到Slack频道。

4

日志格式化与上下文

默认日志格式缺乏关键信息(如用户ID、请求ID),排查问题时难以关联上下文。

Monolog支持自定义Formatter和Processor,可以添加额外上下文信息(如IP、Session ID),并控制日志输出格式(JSON、Line等)。

使用LineFormatter自定义格式,再添加IntrospectionProcessor自动注入调用文件和行号,使日志包含完整调用栈。

项目健康度

B
67/100
良好
活跃度人气增长社区文档
活跃度 10/23

距上次更新 42 天

人气 24/25

平台 Star TOP 3% · Forks 1,907

增长 10/25

本周 +1 ⭐ · 本月 +5 ⭐

社区 15/17

406 位贡献者 · 0 条平台评论

文档 8/10

缺少 1 项内容

在 GitHub 上查看

项目信息

作者 Seldaek
来源 GitHub
周期 每日
仓库ID Seldaek/monolog
最新提交 2026-04-13 12:46:28
第一收录 2026-05-15 08:00:39
最后更新 2026-05-15 10:36:44

赞赏支持

如果本站对你有帮助,欢迎打赏支持

微信打赏码

微信

支付宝打赏码

支付宝

评论 0

登录 后发表评论

加载评论中...

助手