MrZyb Always in fear of one's own ignorance
  • 什么是seaslog

SeasLog是一个C语言编写的PHP扩展,提供一组规范标准的功能函数,在PHP项目中方便、规范、高效地写日志,以及快速地读取和查询日志。

  • 日志的作用

log日志,通常是系统或软件、应用的运行记录。通过log的分析,可以方便用户了解系统或软件、应用的运行情况;如果你的应用log足够丰富,也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息;如果一个应用的log同时也分了多个级别,那么可以很轻易地分析得到该应用的健康状况,及时发现问题并快速定位、解决问题,补救损失。

  • 在ubuntu中安装、使用seaslog

这里我使用的是pecl安装。一条指令搞定。安装过程中可以看到pecl安装只是将编译安装的步骤都执行了而已。大家可以自行试一下。

安装完之后可以看到如下的提示,需要到php.ini中添加这个拓展。 [图片上传失败...(image-cb6bbe-1559478462561)]

进入到php配置目录下,编辑php.ini文件,加入如下配置:

[SeasLog]
extension=seaslog.so
seaslog.default_basepath = /log/seaslog                 ;默认log根目录
seaslog.default_logger = default                        ;默认logger目录
seaslog.disting_type = 1                                ;是否以type分文件 1是 0否(默认)
seaslog.disting_by_hour = 0                             ;是否每小时划分一个文件 1是 0否(默认)
seaslog.use_buffer = 0                                  ;是否启用buffer 1是 0否(默认)
seaslog.buffer_size = 0                                 ;buffer中缓冲数量 默认0(不使用buffer_size)
seaslog.level = 8                                       ;记录日志级别 默认8(所有日志)
seaslog.trace_error = 1                                 ;自动记录错误 默认1(开启)
seaslog.trace_exception = 0                             ;自动记录异常信息 默认0(关闭)
seaslog.default_datetime_format = "Y-m-d H:i:s"   ;日期格式配置 默认"Y-m-d H:i:s"

此处需注意的是:默认的 seaslog.level 是8,并非是0。 使用0时只会记录级别为 EMERGENCY 的日志(大家要看官方文档)。

然后可以在 phpinfo() 中看到如下信息,说明已经安装配置配置成功了。 [图片上传失败...(image-60d75c-1559478462561)]

  • 测试

测试代码如下:

<?php

function seaslog($module, $arr) {
    $log = [];
    foreach ($arr as $key => $value) {
        $log[] = $key . '|' . $value;
    }
    $str = implode('|', $log);

    \SeasLog::info($str, [], $module);
}

$logData = array('time', time());
seaslog('test', $logData);

运行之后可以在设定好的目录下看到新增了一个我们记录的test模块: [图片上传失败...(image-ba9c4e-1559478462561)]

  • 各个级别相关记录函数
<?php
SeasLog::debug(Message);
SeasLog::info(Message);
SeasLog::notice(Message);
SeasLog::warning(Message);
SeasLog::error(Message);
SeasLog::critical(Message);
SeasLog::alert(Message);
SeasLog::emergency(Message);

相关文档:

0.003321s