解析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编程语言开发动态WAP页面
Oct 09 PHP
一个简单的PHP&MYSQL留言板源码
Jul 19 PHP
PHP foreach循环使用详解与实例代码
May 08 PHP
php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
May 15 PHP
php循环语句 for()与foreach()用法区别介绍
Sep 05 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
PHP模拟http请求的方法详解
Nov 09 PHP
php魔法函数与魔法常量使用介绍
Jul 23 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP聊天室简单实现方法详解
Dec 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
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
php中的时间显示
2007/01/18 PHP
MYSQL 小技巧 -- LAST_INSERT_ID
2009/11/24 PHP
laravel中命名路由的使用方法
2017/02/24 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
jQueryUI如何自定义组件实现代码
2010/11/14 Javascript
有关JavaScript的10个怪癖和秘密分享
2011/08/28 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
javascript截取字符串小结
2015/04/28 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
微信小程序使用navigateTo数据传递的实例
2017/09/26 Javascript
JavaScript重复元素处理方法分析【统计个数、计算、去重复等】
2017/12/14 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python实现测试磁盘性能的方法
2015/03/12 Python
Python多线程编程(四):使用Lock互斥锁
2015/04/05 Python
在java中如何定义一个抽象属性示例详解
2017/08/18 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
利用python实现逐步回归
2020/02/24 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
什么是python的id函数
2020/06/11 Python
AHAVA美国官方网站:死海海泥护肤品牌
2016/10/18 全球购物
英国最大的在线时尚眼镜店:Eyewearbrands
2019/03/12 全球购物
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
后勤部经理岗位职责
2014/02/23 职场文书
简历里的自我评价范文
2014/02/24 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
Mysql存储过程、触发器、事件调度器使用入门指南
2022/01/22 MySQL