188金宝搏官网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的属性极其差。

188金宝搏官网 1

那是log4php与SeasLog的属性相比图:

规划思路

那正是说有未有豆蔻年华种log类库同临时间知足以下必要吗:

●分模块、分级别

●配置简单(最佳是勿须配备)

●日志格式清晰易读

●应用轻松、质量很棒

大家掌握,PSRAV4-3规范是三个国际化的日志规范,它必要了“模块、等第、清晰、易用”等日志工作应怀有的个性。由此,只要我们根据了PSGL450-3标准,则大家能够落成“分模块、分品级”以至“日志格式清晰易读”的渴求。

“配置轻巧”那么些供给也很好完成。假设严谨依据既定准绳,其实只须要设置默许目录即可了。

OK,未来大家只剩下“品质”那贰个渴求。

既然如此是日记,免不了会写文件,恐怕经过pipe通过互联网传送到有些存款和储蓄宗旨(大家暂不思索存款和储蓄中央的设计)。能够估摸,借使二个伸手中必要写出1000处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

●遵从 PSEscort-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时,全数日志均不记录。


188金宝搏官网 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

  • 依据 PSPRADO-3 日志接口标准

指标是什么的

  • 便捷、规范的log记录

  • 飞快的雅量log分析

  • 可布置、多路子的log预先警示

发表评论

电子邮件地址不会被公开。 必填项已用*标注