解析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
了解Joomla 这款来自国外的php网站管理系统
Mar 11 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
php 批量查询搜狗sogou代码分享
May 17 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
php之可变变量的实例详解
Sep 12 PHP
php语言注释,单行注释和多行注释
Jan 21 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 PHP
PHP的mysqli_rollback()函数讲解
Jan 23 PHP
Windows服务器中PHP如何安装redis扩展
Sep 27 PHP
php如何实现数据库的备份和恢复
Nov 30 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
9个PHP开发常用功能函数小结
2011/07/15 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
jQuery阻止事件冒泡实例分析
2018/07/03 jQuery
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
python使用cookielib库示例分享
2014/03/03 Python
Python 列表list使用介绍
2014/11/30 Python
Python实现的特征提取操作示例
2018/12/03 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
python默认参数调用方法解析
2020/02/09 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
Python中常用的os操作汇总
2020/11/05 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
商场主管竞聘书
2014/03/31 职场文书
对祖国的寄语大全
2014/04/11 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
展览会邀请函
2015/02/02 职场文书
离婚起诉状范本
2015/05/19 职场文书
欢迎新生标语2015
2015/07/16 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
表扬信范文
2019/04/22 职场文书
导游词之岳阳楼
2019/09/25 职场文书
Element-ui Layout布局(Row和Col组件)的实现
2021/12/06 Vue.js
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS