解析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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
php 购物车完整实现代码
Jun 05 PHP
php动态绑定变量的用法
Jun 16 PHP
php生成动态验证码gif图片
Oct 19 PHP
php时间函数用法分析
May 28 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
PHP空值检测函数与方法汇总
Nov 19 PHP
php格式文件打开的四种方法
Feb 24 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
Aug 02 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
笑谈配置,使用Smarty技术
2007/01/04 PHP
php实现将任意进制数转换成10进制的方法
2015/04/17 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
一些Javascript的IE和Firefox(火狐)兼容性的问题总结及常用例子
2009/05/21 Javascript
基于jQuery的树控件实现代码(asp.net+json)
2010/07/11 Javascript
JQUERY简单按钮轮换选中效果实现方法
2015/05/07 Javascript
简介JavaScript中Boolean.toSource()方法的使用
2015/06/05 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
jQuery基于cookie实现的购物车实例分析
2015/12/24 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
Vue动态组件和异步组件原理详解
2019/05/06 Javascript
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
Python实现的简单hangman游戏实例
2015/06/28 Python
Python实现新浪博客备份的方法
2016/04/27 Python
python版学生管理系统
2018/01/10 Python
python实现电子词典
2020/03/03 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
python链表类中获取元素实例方法
2021/02/23 Python
日本运动品牌美津浓官方购物网站:MIZUNO SHOP
2016/08/21 全球购物
波兰补充商店:Muscle Power
2018/10/29 全球购物
英语专业推荐信
2013/11/16 职场文书
护理医院见习报告
2014/11/03 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
2016年寒假见闻
2015/10/10 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书