解析php如何将日志写进syslog


Posted in PHP onJune 28, 2013

在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统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目录,输入:

vim syslog.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/sysklogd restart或/etc/init.d/sysklogd reload使新增的配置生效,下面我们可以测试新增的日志规则了:
1.输入命令  logger -p local4.info " my test log"
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, "LOG MESSAGE: " . $errinfo);
closelog();

以上各方法的具体用法请查看PHP的API,具体用法不在这里赘述。
其中openlog的第一个参数,是日志标识,该标识会自动加在日志信息的开始,用来表示是什么系统写入的日志。
由于我们想要将日志写入local4.info,所以第三个参数需使用LOG_LOCAL4,该参数表示写入日志的设备信息。
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 debug-level message
第二个参数为具体的日志内容。
PHP 相关文章推荐
PHP概述.
Oct 09 PHP
建立动态的WML站点(二)
Oct 09 PHP
PHP 强制性文件下载功能的函数代码(任意文件格式)
May 26 PHP
php学习之变量的使用
May 29 PHP
smarty模板中使用get、post、request、cookies、session变量的方法
Apr 24 PHP
laravel 5 实现模板主题功能
Mar 02 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
适合PHP初学者阅读的4本经典书籍
Sep 23 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
php 的多进程操作实践案例分析
Feb 28 PHP
如何用PHP websocket实现网页实时聊天
May 26 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 #PHP
解析PHP中的内存管理,PHP动态分配和释放内存
Jun 28 #PHP
关于使用key/value数据库redis和TTSERVER的心得体会
Jun 28 #PHP
解析php中如何直接执行SHELL
Jun 28 #PHP
zend Framework中的Layout(模块化得布局)详解
Jun 28 #PHP
解析在zend Farmework下如何创立一个FORM表单
Jun 28 #PHP
解析zend Framework如何自动加载类
Jun 28 #PHP
You might like
PHP 数据库树的遍历方法
2009/02/06 PHP
php 应用程序安全防范技术研究
2009/09/25 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php教程之phpize使用方法
2014/02/12 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
jquery实现上下左右滑动的方法
2015/02/09 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JavaScript中浅讲ajax图文详解
2016/11/11 Javascript
ECMAScript6--解构
2017/03/30 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
详解webpack4之splitchunksPlugin代码包分拆
2018/12/04 Javascript
Vue使用自定义指令实现拖拽行为实例分析
2020/06/06 Javascript
JS图片懒加载技术实现过程解析
2020/07/27 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
vue + el-form 实现的多层循环表单验证
2020/11/25 Vue.js
js实现验证码干扰(静态)
2021/02/22 Javascript
Python3.7中安装openCV库的方法
2018/07/11 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
python 实现关联规则算法Apriori的示例
2020/09/30 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
交通法规咨询中心工作职责
2013/11/27 职场文书
后勤采购员岗位职责
2013/12/19 职场文书
技校毕业生的自我评价
2013/12/27 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
计算机网络及管理学专业求职信
2014/06/05 职场文书
运动会200米广播稿
2015/08/19 职场文书
用python开发一款操作MySQL的小工具
2021/05/12 Python