计算机:行使SeasLog创设PHP项目中的高品质日志组

作者: 计算机网络  发布:2019-07-23

接纳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类库同期满意以下需求吗:

●分模块、分级别

计算机:行使SeasLog创设PHP项目中的高品质日志组件,日志组件分析。●配置轻巧(最棒是勿须配备)

●日志格式清晰易读

●应用简单、品质很棒

我们精晓,PS福特Explorer-3规范是叁个国际化的日记规范,它须要了“模块、等第、清晰、易用”等日志专业应具备的特色。因而,只要大家遵照了PSTucson-3标准,则大家能够产生“分模块、分品级”以及“日志格式清晰易读”的渴求。

“配置简单”这些须求也很好实现。若是严峻遵照既定法则,其实只须求设置暗中认可目录就可以了。

OK,现在我们只剩下“质量”那八个供给。

既是是日记,免不了会写文件,大概经过pipe通过互联网传送到某些存款和储蓄中央(大家暂不思虑存款和储蓄中央的宏图)。能够估摸,即使二个呼吁中须要写出一千处log,那么势必会有一千次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

●坚守 PSENVISION-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项目中方便...

微信高品质日志组件Xlog的连通和行使

.NetCore中的日志(1)日志组件剖判

.NetCore中的日志(1)日志组件深入分析

 

 

本文由韦德国际1946发布于计算机网络,转载请注明出处:计算机:行使SeasLog创设PHP项目中的高品质日志组

关键词: 日记本 Android... .NET技术 .NET Core