解析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服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
Jun 03 PHP
如何判断php数组的维度
Jun 10 PHP
PHP实现简单搜歌的方法
Jul 28 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
php基于curl主动推送最新内容给百度收录的方法
Oct 14 PHP
PHP实现求解最长公共子串问题的方法
Nov 17 PHP
PHP常见加密函数用法示例【crypt与md5】
Jan 27 PHP
Laravel自动生成UUID,从建表到使用详解
Oct 24 PHP
Yii使用DbTarget实现日志功能的示例代码
Jul 21 PHP
PHP后门隐藏的一些技巧总结
Nov 04 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默认安装产生系统漏洞
2006/10/09 PHP
小偷PHP+Html+缓存
2006/11/25 PHP
如何使用PHP获取指定日期所在月的开始日期与结束日期
2013/08/01 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
双冒号 ::在PHP中的使用情况
2015/11/05 PHP
thinkPHP框架实现的无限回复评论功能示例
2018/06/09 PHP
jquery表单验证使用插件formValidator
2012/11/10 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
js实现坦克移动小游戏
2019/10/28 Javascript
vue使用better-scroll实现滑动以及左右联动
2020/06/30 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
跟老齐学Python之用Python计算
2014/09/12 Python
利用python获取Ping结果示例代码
2017/07/06 Python
使用Python的turtle模块画国旗
2019/09/24 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
基于keras中的回调函数用法说明
2020/06/17 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
大学生军训自我鉴定
2014/02/12 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
推广普通话的宣传语
2015/07/13 职场文书
回复函范文
2015/07/14 职场文书
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS