解析php如何将日志写进syslog
2023-06-13 09:15:02 时间
在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统syslog,下边我们就介绍一下,在linux下php对syslog的操作:
在linux中配置syslog
在linux中,facility(设备)有以下几种:
AUTH普通安全/授权消息
AUTHPRIV私有安全/授权消息
CRON定时器进程
DAEMON守护进程
KERN内核消息
LOCAL0...LOCAL7 本地应用,在windows上不支持
LPR 行式打印机
MAIL 邮件服务
NEWS 新闻服务
SYSLOG 由syslogd内部产生的消息
USER 通用的用户级信息
UUCP UUCP子系统
登录linux系统,进入/etc目录,输入:
复制代码代码如下:
在linux中配置syslog
在linux中,facility(设备)有以下几种:
AUTH普通安全/授权消息
AUTHPRIV私有安全/授权消息
CRON定时器进程
DAEMON守护进程
KERN内核消息
LOCAL0...LOCAL7 本地应用,在windows上不支持
LPR 行式打印机
MAIL 邮件服务
NEWS 新闻服务
SYSLOG 由syslogd内部产生的消息
USER 通用的用户级信息
UUCP UUCP子系统
登录linux系统,进入/etc目录,输入:
vimsyslog.conf
打开syslog的配置文件
在这里,你可以看到syslog的所有配置信息,这里定义了在上一节中提到的每种日志类型存储日志所使用的条件,如:
daemon.* -/var/log/daemon.log
定义了daemon所产生的日志的保存位置,其中daemon为日志类型,“*”代表将所有级别的日志都放到该文件。格式为:
facility。level-日志文件保存的路径,如-/var/log/daemon.log
level包括:
emerg-该系统不可用
alert-需要立即被修改的条件
crit-阻止某些工具或子系统功能实现的错误条件
err-阻止工具或某些子系统部分功能实现的错误条件
warning-预警信息
notice-具有重要性的普通条件
info-提供信息的消息
debug-不包含函数条件或问题的其他信息
none-没有重要级,通常用于排错
*所有级别,除了none
下面我们在配置文件中定义一个自己设备的日志规则:local4.info -/var/log/
接下来执行命令/etc/init.d/sysklogdrestart或/etc/init.d/sysklogdreload使新增的配置生效,下面我们可以测试新增的日志规则了:
2.执行命令tail /var/log/event_log.log
你可以看到自己写入的日志信息:
注意:syslog.conf中local4.info代表所有info级别以及以上的日志会记录到这里
ok,到现在我们已经在ubuntu中设置好了我们需要的日志,下面我们用php中的syslog将日志写到ubuntu中的syslog中。
下面直接上php代码:
openlog("Event1.0",LOG_PID|LOG_PERROR,LOG_LOCAL4);
syslog($level,"LOGMESSAGE:".$errinfo);
closelog();
以上各方法的具体用法请查看PHP的API,具体用法不在这里赘述。
其中openlog的第一个参数,是日志标识,该标识会自动加在日志信息的开始,用来表示是什么系统写入的日志。
由于我们想要将日志写入local4.info,所以第三个参数需使用LOG_LOCAL4,该参数表示写入日志的设备信息。
syslog中$level为日志级别,包括:
LOG_EMERGsystemisunusable
LOG_ALERTactionmustbetakenimmediately
LOG_CRITcriticalconditions
LOG_ERRerrorconditions
LOG_WARNINGwarningconditions
LOG_NOTICEnormal,butsignificant,condition
LOG_INFOinformationalmessage
LOG_DEBUGdebug-levelmessage
第二个参数为具体的日志内容。
相关文章
- C# 隐式转换_php隐式转换
- php格式怎么转换为pdf,PHP如何将将word文件转为pdf
- PHP连接MySQL数据库的步骤与方法(php如何连接mysql)
- 驱动MySQL驱动加载:一种基于PHP的解决方案(php加载mysql)
- MySQL在PHP中的配置须知(php中的mysql配置)
- 远程探索——PHP与MySQL的结合(php远程连接mysql)
- 使用PHP快速实现MySQL查询(php实现mysql查询)
- 库学会使用PHP操作MSSQL类库,輕鬆完成高效工作(php操作mssql类)
- 利用 PHP7 的 OPcache 执行 PHP 代码
- 如何用PHP复制MySQL表?(php复制mysql表)
- PHP如何获取MySQL版本?(php获取mysql版本)
- PHP如何关闭MySQL数据库连接(php关闭mysql连接)
- PHP如何准确获取MySQL数据库中的错误信息?(php获取mysql错误)
- 如何在Linux下顺利安装PHP?(在linux下安装php)
- 如何在Linux上重新安装PHP(linux重新安装php)
- PHP如何连接MS SQL服务器(php怎么连接mssql)
- PHP如何连接MS SQL服务器(php怎么链接mssql)
- PHP如何连接MSSQL服务器(php怎么连mssql)
- 从PHP操作MS SQL:解决方案指南(php如何使用mssql)
- Linux平台如何高效搜索PHP文件(linux搜索php)
- PHP如何正确配置MongoDB数据库连接?(php配置mongodb)
- 原生PHP灵活使用Redis编写高效代码(原生php使用redis)
- 使用Redis需要PHP版本满足特定要求(redis需要php版本)
- 需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
- 用PHP为SHOPEX增加日志功能代码
- 利用Memcached在php下实现session机制替换PHP的原生session支持