解析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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
php实现给图片加灰色半透明效果的方法
Oct 20 PHP
php 删除cookie方法详解
Dec 01 PHP
php利用cookies实现购物车的方法
Dec 10 PHP
php上传图片类及用法示例
May 11 PHP
php禁用cookie后session设置方法分析
Oct 19 PHP
Discuz论坛密码与密保加密规则
Dec 19 PHP
PHP+mysql实现从数据库获取下拉树功能示例
Jan 06 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 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
mysql limit查询优化分析
2008/11/12 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
详解Angular6 热加载配置方案
2018/08/18 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
python开发中module模块用法实例分析
2015/11/12 Python
浅析Python 中整型对象存储的位置
2016/05/16 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python3.9.0 a1安装pygame出错解决全过程(小结)
2021/02/02 Python
大学自我鉴定范文
2013/12/26 职场文书
食品行业求职人的自我评价
2014/01/19 职场文书
教师申诉制度
2014/01/29 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
优秀少先队辅导员先进事迹材料
2014/05/18 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
英文导游词
2015/02/13 职场文书
《雷雨》教学反思
2016/02/20 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS