解析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 相关文章推荐
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
Jun 08 PHP
PHP 获取目录下的图片并随机显示的代码
Dec 28 PHP
PHP生成不同颜色、不同大小的tag标签函数
Sep 23 PHP
PHP中Fatal error session_start()错误解决步骤
Aug 05 PHP
9段PHP实用功能的代码推荐
Oct 14 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php隐藏实际地址的文件下载方法
Apr 18 PHP
从性能方面考虑PHP下载远程文件的3种方法
Dec 29 PHP
详解Yii实现分页的两种方法
Jan 14 PHP
PHP判断是否是微信打开还是浏览器打开的方法
Feb 27 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
Apr 16 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 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之字符串变相相减的代码
2007/03/19 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
php 获取完整url地址
2008/12/20 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
PDO::inTransaction讲解
2019/01/28 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
jquery each()源代码
2011/02/14 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
jQuery无刷新切换主题皮肤实例讲解
2015/10/21 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
Bootstrap使用基础教程详解
2016/09/05 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
JS中定位 position 的使用实例代码
2017/08/06 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
Vuex提升学习篇
2018/01/11 Javascript
vue-cli项目根据线上环境分别打出测试包和生产包
2018/05/23 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
vue项目中自定义video视频控制条的实现代码
2020/04/26 Javascript
使用Python读写及压缩和解压缩文件的示例
2016/07/08 Python
python实现报表自动化详解
2017/11/16 Python
python中返回矩阵的行列方法
2018/04/04 Python
python调试神器PySnooper的使用
2019/07/03 Python
python中eval与int的区别浅析
2019/08/11 Python
学生个人的自我评价分享
2013/11/05 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
二年级体育教学反思
2014/01/15 职场文书
治超工作实施方案
2014/05/04 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
主持人开幕词
2015/01/29 职场文书
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript