解析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 session处理的定制
Mar 16 PHP
PHP及Zend Engine的线程安全模型分析
Nov 10 PHP
Thinkphp多文件上传实现方法
Oct 31 PHP
PHP获取当前所在目录位置的方法
Nov 26 PHP
PHP SplObjectStorage使用实例
May 12 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
源码分析 Laravel 重复执行同一个队列任务的原因
Dec 25 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 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
菜鸟修复电子管记
2021/03/02 无线电
php mssql 数据库分页SQL语句
2008/12/16 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
set_exception_handler函数在ThinkPHP中的用法
2014/10/31 PHP
PHP实现十进制、二进制、八进制和十六进制转换相关函数用法分析
2017/04/25 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
JavaScript Event学习第四章 传统的事件注册模型
2010/02/07 Javascript
js点击更换背景颜色或图片的实例代码
2013/06/25 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
js实现鼠标左右移动,图片也跟着移动效果
2017/01/25 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
详解如何配置vue-cli3.0的vue.config.js
2018/08/23 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
使用Python爬取弹出窗口信息的实例
2020/03/14 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
在django中查询获取数据,get, filter,all(),values()操作
2020/08/09 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
世界上最大的字体市场:MyFonts
2020/01/10 全球购物
求职者怎样写自荐信
2014/04/13 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
大一新生检讨书
2014/10/29 职场文书
让世界充满爱观后感
2015/06/10 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
小学班级标语口号大全
2015/12/26 职场文书
创业计划书之个人工作室
2019/08/22 职场文书