解析php如何将日志写进syslog

2015-01-24信息快讯网

本篇文章是对php中将日志写进syslog的方法进行了详细的分析介绍,需要的朋友参考下

在做项目的时候们为了方便运维,我们经常需要将系统日志写入系统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使用websocket示例详解
php截取字符串之截取utf8或gbk编码的中英文字符串示例
php实现快速排序的三种方法分享
php二分查找二种实现示例
php遍历文件夹和文件列表示例分享
php自动加载autoload机制示例分享
php中simplexml_load_string使用实例分享
php中的filesystem文件系统函数介绍及使用示例
更改localhost为其他名字的方法
php利用单例模式实现日志处理类库
php中利用explode函数分割字符串到数组
php中autoload的用法总结
PHP error_log()将错误信息写入一个文件(定义和用法)
使用PHP实现蜘蛛访问日志统计
浅析php变量修饰符static的使用
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
解析PHP中的内存管理,PHP动态分配和释放内存
解析php中如何直接执行SHELL
使用PHP接收POST数据,解析json数据
PHP遍历某个目录下的所有文件和子文件夹的实现代码
php连接函数implode与分割explode的深入解析
PHP 实现explort() 功能的详解
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
修改php.ini以达到屏蔽错误信息并记录日志
深入PHP autoload机制的详解
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
PHP Error与Logging函数的深入理解
LotusPhp笔记之:Logger组件的使用方法
PHP中设置时区,记录日志文件的实现代码
将博客园(cnblogs.com)数据导入到wordpress的代码
Could not load type System.ServiceModel.Activation.HttpModule解决办法
记录PHP错误日志 display_errors与log_errors的区别
©2014-2024 dbsqp.com