天天看点

ThinkPHP 接入 SeasLog 日志组件

【背景】

为实现开发前期联调bug 定位、线上bug快速定位、快速响应,遂暂为斐讯路由后台 Api 模块添加日志记录支持。

【SeasLog 简介】

1. 国产log组件
2. 简洁配置

3.应用简单、性能强劲
4.分模块、分级别记录日志。
   分模块:如斐讯路由后台分为 Api 模块、后台Admin模块。
   分级别:支持8种日志记录级别,对斐讯路由后台来说日志记录级别定义为—debug、info、emergency 即可。
5.日志记录策略:日志->内存->文件
更详细介绍,github主页:https://github.com/Neeke/SeasLog
           

【SeasLog安装流程】

1.打开网址 http://pecl.php.net/
 2.选择seaslog 并点击获取箭头
           
ThinkPHP 接入 SeasLog 日志组件

09BF40A1-1A0C-4BF8-8589-8E690F97922B.png

3.点击seaslog
           
ThinkPHP 接入 SeasLog 日志组件

770A85EE-4100-4C46-BA92-E80842B06D51.png

4.下载最新版本SeasLog

ThinkPHP 接入 SeasLog 日志组件

3401D24C-3075-467F-A9C1-BE9E23ED2D05.png

5.安装php seaslog 扩展

5.1解压压缩包

ThinkPHP 接入 SeasLog 日志组件

EDCC1B98-A9E4-465D-89E4-9C22475AB90F.png

5.2使用phpize 编译安装seaslog 外挂模块

什么是phpize?链接如下:

http://blog.csdn.net/czhphp/article/details/68067324
ThinkPHP 接入 SeasLog 日志组件

C91A3F7A-227F-4E80-8992-49C9D122A7F5.png

由上至下之行前两个命令,执行完phpize 命令之后,会看到文件夹下多出了 configure 文件夹

5.3执行如下命令 ./configure — with-php-config=(服务器上php安装路径)/usr/local/php/bin/php-config

“=” 后面的路径为本地php-config 目录

ThinkPHP 接入 SeasLog 日志组件

074D8E5A-59B8-48FB-B0EE-2F28557447DA.png

5.4执行如下命令 make && make install 编译 SeasLog 模块

ThinkPHP 接入 SeasLog 日志组件

F1A69EF8-776E-4E3A-84D2-B515268E9E59.png

5.5 安装成功,安装成功之后,扩展模块所在文件路径如下图所示

/usr/local/Cellar/php55/5.5.38_11/lib/php/extensions/no-debug-non-zts-20121212/ 本机

ThinkPHP 接入 SeasLog 日志组件

E54236A9-7D7F-4C33-82EB-0D4423B651DE.png

5.6在php.ini 中配置 seaslog.so 扩展,应该是在etc文件夹下

ThinkPHP 接入 SeasLog 日志组件

8DBF1CE2-CBEA-47DD-8A56-16207B849913.png

5.7 重启php应用服务器

5.8 验证 seaslog有没有安装成功,访问phpInfo.php 文件

ThinkPHP 接入 SeasLog 日志组件

B30137BC-6914-4FD3-B9B1-FAC9C1B724EC.png

SeasLog 为国产日志软件,支持!

gitHub 地址:

https://github.com/Neeke/SeasLog

作者自述:

https://github.com/Neeke/SeasLog/blob/master/README.md

5.9 在 php.ini 中配置 seaslog 基础配置

关于 SeasLog 的配置跟统一开发环境一致。

5.10 重新访问php info 看是否配置成功

【现阶段SeasLog实践情况】

已在统一开发环境实现斐讯路由App 5.0.0 新增接口的日志记录。

若测试环境配置通过,可立即接入。

【SeasLog 对 接口响应性能的影响】

理论上SeasLog 对接口响应时间肯定会有延迟影响。

但因SeasLog 对应用系统产生的日志是先写入存储到内存,当内存中写入的日志达到阀值(内存中日志达到1000行刷新一次,一次访问结束刷新一次),便刷新日志内容到文件当中。(缓冲区)
           

性能测试:

虽有理论支持, 建议仍需要做性能测试。

【SeasLog 与 Kibana 结合】

SeasLog 负责生产日志。

Kibana负责消费、分析日志。

烦请运维同事先在测试环境配置、多谢!