解析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 COOKIE立即生效,不用刷新就可以使用
Mar 09 PHP
PHP ? EasyUI DataGrid 资料存的方式介绍
Nov 07 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
PHP CURL获取返回值的方法
May 04 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
PHP实现简单汉字验证码
Jul 28 PHP
PHP代码优化技巧小结
Sep 29 PHP
PHP实现基于文本的摩斯电码生成器
Jan 11 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
Aug 11 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
Laravel 连接(Join)示例
Oct 16 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面向对象——访问修饰符介绍
2012/11/08 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
angularjs中的单元测试实例
2014/12/06 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
js获取ip和地区
2017/03/10 Javascript
JS解决移动web开发手机输入框弹出的问题
2017/03/31 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
3分钟了解vue数据劫持的原理实现
2019/05/01 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
基于javascript实现贪吃蛇经典小游戏
2020/04/10 Javascript
Vue实现图片轮播组件思路及实例解析
2020/05/11 Javascript
python实现计算倒数的方法
2015/07/11 Python
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
python 读取修改pcap包的例子
2019/07/23 Python
在pandas中遍历DataFrame行的实现方法
2019/10/23 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
python字符串拼接+和join的区别详解
2020/12/03 Python
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
会计电算化专业个人的自我评价
2013/11/24 职场文书
安全生产承诺书
2014/03/26 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
刑事案件上诉状
2015/05/23 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
Java中API的使用方法详情
2022/04/06 Java/Android