❤️❤️❤️❤️❤️❤️ 我们已经正式推出微信小程序,在微信中搜索 TrendForge Pro 即可使用小程序,如果使用 Telegram 请搜索 trendforge_tg ❤️❤️❤️❤️❤️❤️
项目介绍
将日志发送到文件、套接字、收件箱、数据库及各类网络服务
Sends your logs to files, sockets, inboxes, databases and various web services
智能解读
原始标签
智能标签
使用场景
Monolog最适合需要灵活、可扩展日志系统的PHP项目,尤其是需要多通道输出、分级过滤、第三方服务集成和自定义格式化的场景。
多通道日志记录
开发时需要在控制台看到日志,生产环境却要写入文件并发送告警邮件,手动切换配置很麻烦。
Monolog支持同时配置多个Handler,比如StreamHandler写入文件、BrowserConsoleHandler输出到浏览器控制台、NativeMailerHandler发送邮件,只需在初始化Logger时添加多个Handler即可。
开发环境:Logger添加StreamHandler和BrowserConsoleHandler;生产环境:Logger添加StreamHandler和NativeMailerHandler,通过环境变量切换配置。
日志分级与过滤
日志文件里充斥着大量DEBUG信息,导致难以定位ERROR级别的错误。
Monolog支持按日志级别过滤,可以为每个Handler设置最低日志级别,例如StreamHandler只记录WARNING及以上日志,而FileHandler记录所有级别。
使用StreamHandler('php://stderr', Logger::WARNING)只输出警告和错误到标准错误流,避免调试信息干扰。
第三方服务集成
需要将应用错误实时推送到Slack、Sentry或日志聚合平台,但每个服务都有不同API,集成成本高。
Monolog内置了SlackHandler、SlackWebhookHandler、SentryHandler等数十种第三方Handler,只需简单配置即可将日志推送到对应服务。
使用SlackWebhookHandler('https://hooks.slack.com/services/xxx', 'channel', 'botname'),当ERROR发生时自动发送通知到Slack频道。
日志格式化与上下文
默认日志格式缺乏关键信息(如用户ID、请求ID),排查问题时难以关联上下文。
Monolog支持自定义Formatter和Processor,可以添加额外上下文信息(如IP、Session ID),并控制日志输出格式(JSON、Line等)。
使用LineFormatter自定义格式,再添加IntrospectionProcessor自动注入调用文件和行号,使日志包含完整调用栈。
项目健康度
距上次更新 42 天
平台 Star TOP 3% · Forks 1,907
本周 +1 ⭐ · 本月 +5 ⭐
406 位贡献者 · 0 条平台评论
缺少 1 项内容
项目信息
赞赏支持
如果本站对你有帮助,欢迎打赏支持
微信
支付宝
Widget 徽章
相关项目推荐
danielmiessler/SecLists
SecLists 是安全测试人员的得力助手。它是安全评估期间使用的多种类型列表的集合,集中收录于一处。列表类型包括用户名、密码、URL、敏感数据模式、模糊测试负载、Web Shell 等。
coollabsio/coolify
开源且可自行托管的Heroku/Netlify/Vercel替代方案。
nextcloud/server
☁️ Nextcloud服务器,为您所有数据提供安全家园
laravel/framework
Laravel 框架。
symfony/symfony
Symfony PHP框架
filamentphp/filament
Laravel强大的开源UI框架 • 借助Livewire快速构建与部署管理后台及应用系统
加载评论中...