解析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 相关文章推荐
用 PHP5 轻松解析 XML
Dec 04 PHP
PHP执行linux系统命令的常用函数使用说明
Apr 27 PHP
PHP中输出转义JavaScript代码的实现代码
Apr 22 PHP
基于PHP选项与信息函数的使用详解
May 10 PHP
基于php冒泡排序算法的深入理解
Jun 09 PHP
php输入流php://input使用示例(php发送图片流到服务器)
Dec 25 PHP
PHP实现批量修改文件后缀名的方法
Jul 30 PHP
php实现的递归提成方案实例
Nov 14 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
Jun 30 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
php代码调试利器firephp安装与使用方法分析
Aug 21 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 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
2010/10/12 PHP
比较时间段一与时间段二是否有交集的php函数
2011/05/31 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
node.js中的fs.readdirSync方法使用说明
2014/12/17 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
如何用angularjs制作一个完整的表格
2016/01/21 Javascript
SVG描边动画
2017/02/23 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
Angular.js实现动态加载组件详解
2017/05/28 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
VUE单页面切换动画代码(全网最好的切换效果)
2019/10/31 Javascript
ES6函数和数组用法实例分析
2020/05/23 Javascript
Vue 请求传公共参数的操作
2020/07/31 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
[02:01]BBC DOTA2国际邀请赛每日综述:八强胜者组鏖战,中国队喜忧参半
2014/07/19 DOTA
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
Python获取二维数组的行列数的2种方法
2020/02/11 Python
HTML5新增加的功能详解
2016/09/05 HTML / CSS
综合实践活动方案
2014/02/14 职场文书
业务内勤岗位职责
2014/04/30 职场文书
小学庆六一活动总结
2014/08/28 职场文书
专职安全员岗位职责
2015/04/11 职场文书
商务宴会祝酒词
2015/08/11 职场文书
电台广播稿范文
2015/08/19 职场文书
2016年大学生实习单位评语
2015/12/01 职场文书
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技