将 PHP 脚本的错误日志整合发送到开发人员邮箱

2017-09-30 11:23:56 +08:00
 toyuanx

需求如下:

1.运行一个 PHP 脚本,脚本中有很多捕获异常记录日志的操作

2.已经有发送邮件的接口;

3.现在要将每次运行该 PHP 脚本产生的 warn 或 error 日志整合发送到邮箱,有什么方法吗?

我现在只知道把日志记录当字符串拼起来发送到邮箱。。。。

3100 次点击
所在节点    PHP
15 条回复
batnss
2017-09-30 11:55:37 +08:00
运行 1 2 3 不就好了吗
janus77
2017-09-30 12:47:59 +08:00
不是直接生成.log 文件 发附件吗
toyuanx
2017-09-30 14:12:01 +08:00
@janus77 只发送错误或警告的,如果没有就不发送
toyuanx
2017-09-30 14:13:38 +08:00
@batnss 能再具体一点吗,之前只接触过写日志,1 2 3 不懂是什么意思
yougeren
2017-09-30 15:07:22 +08:00
错误或警告单独打印不就行了
b821025551b
2017-09-30 15:32:52 +08:00
就是把日志文件用附件的形式发出去啊。
t333st
2017-09-30 17:10:01 +08:00
写过 域名定时检测告警系统,服务器上跑定时任务去检测目标域名,所有结果都入库以供需要查阅,访问失败则会以邮件进行告警。。。。
其实不难啊,你只需要清楚自己要的是什么,然后简单架构一下,分模块写,写好再连接起来
不就是搭积木么
vex2
2017-09-30 17:22:25 +08:00
set_exception_handler
set_error_handler
shiny
2017-09-30 17:25:48 +08:00
为什么不用 Sentry, 可以邮件 /Slack 推送新出现的错误。
holyghost
2017-09-30 17:38:54 +08:00


你需要 sentry,朋友
lslqtz
2017-09-30 19:34:38 +08:00
这不很简单嘛
分类记录日志,定时不就好了
还搞筛选,日志大慢不死你。。
zqhong
2017-09-30 20:02:42 +08:00
日志记录使用 Monolog,handler 选择 NativeMailerHandler,日志级别设置为 warning。

NativeMailerHandler 的源码在这里:
https://github.com/Seldaek/monolog/blob/master/src/Monolog/Handler/NativeMailerHandler.php
zqhong
2017-09-30 20:11:23 +08:00
错误的捕捉参考下面这个:
https://gist.github.com/zqhong/0a7c7942b573608f2a0101a5f72a8f79


大致只需要设置这几个就行:
set_exception_handler
set_error_handler
register_shutdown_function
lyzy
2017-10-01 00:35:34 +08:00
seaslog
cxbig
2017-10-02 05:59:58 +08:00
1. 简单的跑个 cron 就行,用 awk,grep,sed 之类的命令挑出你要的来,直接 sendmail 到邮箱即可。
2. 如果单个 log 文件过大,也可以考虑按文件大小的 logrotate 做,利用 postscript,用 1 提到的手法处理一下分出来的那部分。
3. 再往复杂的考虑,可以用 ELK 这类巨型工具。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/394819

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX