rsyslog和在PHP上的应用

rsyslog配置

rsyslog的配置文件为/etc/rsyslog.conf,但真正的配置放在/etc/rsyslog.d/目录下

#  Default rules for rsyslog.
#
#           For more information see rsyslog.conf(5) and /etc/rsyslog.conf

#
# First some standard log files.  Log by facility.
#
auth,authpriv.*         /var/log/auth.log
*.*;user.none;auth,authpriv.none        -/var/log/syslog
#cron.*             /var/log/cron.log
#daemon.*           -/var/log/daemon.log
kern.*              -/var/log/kern.log
#lpr.*              -/var/log/lpr.log
mail.*              -/var/log/mail.log
user.*              -/var/log/user.log        #设备类型.紧急程度

修改了rsyslog的配置文件后,需要重启服务来生效,命令为service rsyslog restart

代码示例

PHP代码示例:

<?php

openlog('USER-LOG', LOG_PID, LOG_USER);
syslog(LOG_ERR, 'ERROR!!!');
closelog();

运行结果:

$ cat /var/log/user.log

Mar 17 02:45:34 homestead USER-LOG[6540]: ERROR!!!

函数解释

rsyslog会根据openlog()的设备类型,和syslog()的紧急程度,来确定该日志信息被写入哪个文件

bool openlog ( string $ident , int $option , int $facility )

  • $ident:日志的标识,将被添加到日志信息中(USER-LOG)
  • $option:示例中的值为LOG_PID,因此pid进程号将被添加到每条日志信息中([6540])
$option
  • $facility:该参数指定记录信息的设备类型
$facility

bool syslog ( int $priority , string $message )

  • 产生一条日志信息,并被rsyslog系统分发
  • $priority:紧急程度
$priority
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容