PHP日志扩展 SeasLog

作者:联系我们

利用SeasLog创设PHP项目中的高品质日志组件(1)

什么是SeasLog

SeasLog是贰个C语言编写的PHP扩充,提供一组正式标准的效应函数,在PHP项目中有益、标准、高效地写日记,以致便捷地读取和询问日志。

为何使用SeasLog

随意在什么应用中,log日志都以架设中不可缺点和失误的多个重大组成都部队分,它经常是系统或软件、应用的周转记录。通过log的深入分析,可以平价顾客领会系统或软件、应用的运作境况;倘使你的采用log丰富丰硕,也足以深入分析过去顾客的操作行为、类型喜好、地域布满或其余越来越多音信;假诺二个用到的log同一时候也分了多少个品级,那么能够很自由地深入分析得到该利用的健康情状,及时开掘难点并飞快稳定、化解问题,补救损失。

大家知道,php内置了重重log函数,如error_log、syslog、file_put_content,那一个函数功效强大且品质极好,但鉴于各样缺点(error_log、file_put_content无不当等级、无固定格式疑似信马由缰随地乱画;syslog不区分模块、而且与系统日志混合,读syslog记录会令人抓狂的。),灵活度缩小了不菲,很无法满足使用须要。基本上全部的开采者,都会自行设计封装log库,当然也可能有比较多开拓者选拔已有的开源日志库。

也可能有为数不菲开源log类库弥补了上述缺欠,如log4php、plog、Analog等(当然也会有广大选取在类型中友好付出的log类)。当中以log4php最为盛名,它的统一计划精良、格式完美、文书档案完善、作用强盛。可是经过测验,log4php的属性比较不好。

图片 1

那是log4php与SeasLog的性质相比较图:

设计思路

那就是说有未有一种log类库相同的时间满足以下必要吗:

●分模块、分级别

●配置轻便(最棒是勿须配备)

●日志格式清晰易读

●应用简单、质量很棒

笔者们领略,PSXC90-3规范是三个国际化的日记标准,它供给了“模块、等第、清晰、易用”等日志职业应怀有的特点。由此,只要大家根据了PS哈弗-3标准,则大家能够成功“分模块、分等第”甚至“日志格式清晰易读”的须求。

“配置简单”那些要求也很好完结。假若严刻遵循既定法规,其实只必要安装暗中认可目录就足以了。

OK,以往我们只剩余“质量”那四个渴求。

既是是日记,免不了会写文件,或然经过pipe通过网络传送到有个别存款和储蓄中央(大家暂不考虑存款和储蓄核心的策画)。能够想见,假诺叁个呼吁中要求写出一千处log,那么势必会有1000次IO,那对质量将是贰个十分大的耽搁点。平日对于拍卖这种频仍同等的央浼场景,大家要消除的其实也很简短,使用cache或buffer,把多次伸手作归并,进而减少对磁盘或互联网的IO,那是一个主导的思辨。

SeasLog也是那样做的。设定多个buffer_size(私下认可100条log),使用PHP哀求内部存储器,每写三遍log,塞入内部存款和储蓄器,同一时候buffer_size加;当buffer_size等于设置值时,则张开二次IO,同期免去buffer; 当然,倘诺央浼甘休了、或施行了die、exit或别的万分退出时,不管buffer_size有未有攒够设置值,马上开展一遍IO,同不正常候免去buffer。

到如今结束,SeasLog的业内版本为1.1.6,采取Apache 2.0开源公约,同有的时候候能够在php.net官方,和Github库上收获它的一体化代码。

Php.net

Github

日前提供了如何

●在PHP项目中便捷、标准地记录log

●可铺排的暗中同意log目录与模块

●钦赐log目录与收获当前布署

●初始的分析预先警告框架

●高效的日志缓冲、便捷的缓冲debug

●服从 PSEvoque-3 日志接口规范

怎么设置

获取源码后,可自行编写翻译。

$ /path/to/phpize

$ ./configure --with-php-config=/path/to/php-config 

$ make && make install

本来,使用PECL管理工科具会更有益于: 

$ pecl install seaslog

seaslog.ini的配置

; configuration for php SeasLog module extension = seaslog.so seaslog.default_basepath = /log/seaslog-test    ;默认log根目录 seaslog.default_logger = default                ;默认logger目录 seaslog.disting_type = 1                            ;是否以type分文件 1是 0否(默认) seaslog.disting_by_hour = 1                      ;是否每小时划分一个文件 1是 0否(默认) seaslog.use_buffer = 1                              ;是否启用buffer 1是 0否(默认) seaslog.buffer_size = 100                         ;buffer中缓冲数量 默认0(不使用buffer_size) seaslog.level = 0                                       ;记录日志级别 默认0(所有日志) 

seaslog.disting_type = 1 开启以type分文件,即log文件分别infowarnerro

seaslog.disting_by_hour = 1 张开每小时划分一个文书

seaslog.use_buffer = 1 张开buffer。暗中同意关闭。当展开此项时,日志预存于内部存储器,当呼吁结束时(或非常退出时)一回写入文件。

seaslog.buffer_size = 100 设置缓冲数量为100. 默感到0,即无缓冲数量限制.当buffer_size大于0时,缓冲量到达该值则写一回文件. 

seaslog.level = 3 记录的日志品级.暗许为0,即具备日志均记录。当level为1时,关怀debug以上等第(满含debug),就那样推算。level大于8时,全数日志均不记录。


图片 2


) 什么是SeasLog SeasLog是贰个C语言编写的PHP扩张,提供一组正式标准的功效函数,在PHP项目中方便...

程序猿必上的开拓者服务平台 —— DevStore

SeasLog
Yet a log extension for PHP.A effective,fast,stable log extension for PHP
@author Chitao.Gao [neeke@php.net]

何以选择SeasLog

log日志,经常是系统或软件、应用的运营记录。通过log的剖判,能够实惠客商精通系统或软件、应用的运维情况;假使您的运用log丰硕丰裕,也得以深入分析过去客户的操作行为、类型喜好、地域分布或另外越来越多音讯;要是一个运用的log同期也分了三个等第,那么能够很随便地分析获得该使用的健康景况,及时发掘难题并急忙稳固、消除难点,补救损失。

php内置error_log、syslog函数作用强盛且品质极好,但出于各个劣点(error_log无不当等级、无固定格式,syslog不分模块、与系统日志混合),灵活度减少了数不完,不可能满意使用供给。

好音讯是,有无数第三方的log类库弥补了上述缺欠,如log4php、plog、Analog等(当然也会有这些施用在品种中自身开辟的log类)。当中以log4php最棒闻明,设计精良、格式完美、文档完善、功用强大。推荐。(log4php的属性有待测量检验)

那正是说有未有一种log类库满意以下须要呢:

  • 分模块、分级别

  • 计划轻易(最佳是勿须配备)

  • 日志格式清晰易读

  • 利用轻便、品质很棒

SeasLog 便是应此供给而生。

脚下提供了哪些

  • 在PHP项目中便捷、标准地记录log

  • 可配备的暗中认可log目录与模块

  • 钦赐log目录与收获当前布局

  • 千帆竞发的深入分析预先警告框架

  • 迅猛的日记缓冲、便捷的缓冲debug

  • 依照 PS陆风X8-3 日志接口标准

目的是什么的

  • 便捷、规范的log记录

  • 敏捷的海量log解析

  • 可陈设、多渠道的log预先警示

本文由杏彩发布,转载请注明来源

关键词: