解析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+java实现自动新闻滚动窗口
Oct 09 PHP
PHP高级OOP技术演示
Aug 27 PHP
PHP学习笔记之数组篇
Jun 28 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
May 06 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
Zend Framework入门教程之Zend_Registry组件用法详解
Dec 09 PHP
php curl批处理实现可控并发异步操作示例
May 09 PHP
PHP PDOStatement::nextRowset讲解
Feb 01 PHP
php实现文章评论系统
Feb 18 PHP
Laravel创建数据库表结构的例子
Oct 09 PHP
PHP的new static和new self的区别与使用
Nov 27 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
《OVERLORD》手游英文版即将上线 手机上也能扮演骨王
2020/04/09 日漫
php socket方式提交的post详解
2008/07/19 PHP
CI框架装载器Loader.php源码分析
2014/11/04 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
用jQuery模拟页面加载进度条的实现代码
2011/12/19 Javascript
jQuery之选择组件的深入解析
2013/06/19 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
jquery任意位置浮动固定层插件用法实例
2015/05/29 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python判断字符串是否纯数字的方法
2014/11/19 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
创建Django项目图文实例详解
2019/06/06 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
使用python爬取抖音app视频的实例代码
2020/12/01 Python
python excel和yaml文件的读取封装
2021/01/12 Python
通过HTML5规范搞定i、em、b、strong元素的区别
2017/03/04 HTML / CSS
应聘医药销售自荐书范文
2014/02/08 职场文书
社区党建工作方案
2014/06/10 职场文书
驾驶员安全责任书
2014/07/22 职场文书
关于美容院的活动方案
2014/08/14 职场文书
Oracle 数据仓库ETL技术之多表插入语句的示例详解
2021/04/12 Oracle
Pytest中conftest.py的用法
2021/06/27 Python
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python