php

位置:IT落伍者 >> php >> 浏览文章

解析php如何将日志写进syslog


发布日期:2022年11月03日
 
解析php如何将日志写进syslog
本篇文章是对php中将日志写进syslog的方法进行了详细的分析介绍需要的朋友参考下

在做项目的时候们为了方便运维我们经常需要将系统日志写入系统syslog下边我们就介绍一下在linux下php对syslog的操作
在linux中配置syslog
在linux中facility(设备)有以下几种
AUTH 普通安全/授权消息
AUTHPRIV 私有安全/授权消息
CRON 定时器进程
DAEMON 守护进程
KERN 内核消息
LOCAL LOCAL 本地应用在windows上不支持
LPR 行式打印机
MAIL 邮件服务
NEWS 新闻服务
SYSLOG 由syslogd内部产生的消息
USER 通用的用户级信息
UUCP UUCP子系统
登录linux系统进入/etc目录输入

复制代码 代码如下:
vim syslogconf


打开syslog的配置文件
在这里你可以看到syslog的所有配置信息这里定义了在上一节中提到的每种日志类型存储日志所使用的条件
daemon* /var/log/daemonlog
定义了daemon所产生的日志的保存位置其中daemon为日志类型“*”代表将所有级别的日志都放到该文件格式为
facilitylevel 日志文件保存的路径/var/log/daemonlog
level包括:
emerg -该系统不可用
alert -需要立即被修改的条件
crit -阻止某些工具或子系统功能实现的错误条件
err -阻止工具或某些子系统部分功能实现的错误条件
warning -预警信息
notice -具有重要性的普通条件
info -提供信息的消息
debug -不包含函数条件或问题的其他信息
none -没有重要级通常用于排错
* 所有级别除了none
下面我们在配置文件中定义一个自己设备的日志规则localinfo /var/log/
接下来执行命令/etc/initd/sysklogd restart或/etc/initd/sysklogd reload使新增的配置生效下面我们可以测试新增的日志规则了
输入命令 logger p localinfo " my test log"
执行命令 tail /var/log/event_loglog
你可以看到自己写入的日志信息
注意syslogconf中localinfo 代表所有info级别以及以上的日志会记录到这里
ok到现在我们已经在ubuntu中设置好了我们需要的日志下面我们用php中的syslog将日志写到ubuntu中的syslog中
下面直接上php代码

复制代码 代码如下:
openlog("Event" LOG_PID | LOG_PERROR LOG_LOCAL);
syslog($level "LOG MESSAGE: " $errinfo);
closelog();


以上各方法的具体用法请查看PHP的API具体用法不在这里赘述
其中openlog的第一个参数是日志标识该标识会自动加在日志信息的开始用来表示是什么系统写入的日志
由于我们想要将日志写入localinfo所以第三个参数需使用LOG_LOCAL该参数表示写入日志的设备信息
syslog中$level为日志级别包括
LOG_EMERG system is unusable
LOG_ALERT action must be taken immediately
LOG_CRIT critical conditions
LOG_ERR error conditions
LOG_WARNING warning conditions
LOG_NOTICE normal but significant condition
LOG_INFO informational message
LOG_DEBUG debuglevel message
第二个参数为具体的日志内容

上一篇:解析如何去掉CodeIgniter URL中的index.php

下一篇:php连接函数implode与分割explode的深入解析