在开发web项目或者其他场景下,有时候我们需要设置“报警”。比如当数据库的某一项指标达到某一个值时,需要通知网站管理员。今天跟大家分享一个比较简单的php报警的功能。

先介绍一个php中用来记录log的一个函数error_log,它用来发送错误到某个地方。函数介绍

bool error_log ( string $message [, int $message_type = 0 [, string  $destination [, string $extra_headers ]]]

其中$message表示要记录的信息;$message_type用来设置信息要发往何处。可能的信息类型如下:

0 : message 发送到 PHP 的系统日志,使用 操作系统的日志机制或者一个文件,取决于 error_log 指令设置了什么。 这是个默认的选项。

1 : message 发送到参数 destination 设置的邮件地址。 第四个参数 extra_headers 只有在这个类型里才会被用到。

2 : 不再是一个选项

3 : message 被发送到位置为 destination 的文件里

4 : message 直接发送到 SAPI 的日志处理程序中。

此外,$destination由$message_type所决定;$extra_headers当$message_type为1时使用。

在*nix操作系统下,php发送邮件是通过sendmail组件。所以要先确保已经安装了sendmail组件。可以通过以下命令测试你的服务器上的邮件服务是否正常。未发送成功的邮件默认会退回/var/mail/下。可以自行查看退回的邮件中的详情。

echo "test mail content" | mail -s "test mail subject" {xxx@yy.com}

Start

1.安装sendmail

Mac正常默认带有sendmail,位于/usr/sbin/下。如果没有,可以自行搜索安装下~

2.找到php所使用的配置文件php.ini

php -i | grep php.ini

3.打开php.ini,找到sendmail配置行

sendmail_path = "/usr/sbin/sendmail -t -i"

4.如果是在web项目中使用,配置完以后重启服务器方可生效。

5.测试。使用php -a 打开php交互式shell,输入以下代码,然后前往邮箱查看(注:邮箱可能会屏蔽掉此类邮件,请注意添加白名单)。

error_log('hello world',1,'xxx@yy.com');

大致是如上步骤。其他Linux类操作系统关于此的配置大同小异,感兴趣的伙伴可以自行尝试下。本文不足的地方也请大伙们提出批评修改意见~

更多PHP相关知识,请访问PHP教程!

更多相关文章

  1. 居然有人想白嫖我的日志,赶紧开启安全保护压压惊!
  2. 面对成百上千台服务器产生的日志,试试这款轻量级日志搬运神器!
  3. 性能优越的轻量级日志收集工具,微软、亚马逊都在用!
  4. 你居然还去服务器上捞日志,搭个日志收集系统难道不香么!
  5. SpringBoot应用整合ELK实现日志收集
  6. SpringBoot应用中使用AOP记录接口访问日志
  7. Linux定时任务邮件信息占盘磁盘
  8. 无异常日志,就不能排查问题了???
  9. java日志框架体系梳理,简单直白

随机推荐

  1. ImageView的src和background一些我的理解
  2. EditText实现输入限制和校验功能实例代码
  3. Android 设定横竖屏,屏幕旋转导致Activity
  4. android 线程(一)
  5. Android(安卓)HandlerThread全面解析
  6. Android之Intent全面解析及用法
  7. android国际化
  8. Android 之类库常用包
  9. 6、Android中的NFC技术
  10. android实现动画效果的方法onDrawFrame