SeasLog快速上手指南

🕓 · ☕3 min read
🏷️
  • #SeasLog
  • 什么是SeasLog

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

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

    • 高性能

    SeasLog使用C语言编写,并带有缓冲池的功能。每次写入的日志,是先写入到内存当中,当达到一定的数量时,才写入到文件当中。

    • 配置简单

    SeasLog的配置十分简单,甚至不需要配置就可以直接使用。

    • 功能完善,使用简单

    支持日志级别 支持日志分模块存放 支持日志统计,分析

    如何安装SeasLog

    • SeasLog源码下载地址:https://pecl.php.net/package/SeasLog

    • SeasLog源码安装过程(Linux)

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      
      # 下载源码
      wget https://pecl.php.net/get/SeasLog-1.6.9.tgz
      
      # 解压缩源码
      tar -zxvf SeasLog-1.6.9.tgz
      
      # phpize工具生源码编译文件
      cd SeasLog-1.6.9
      phpize
      
      # 源码编译安装
      ./configure 
      make
      make install
      
      # 修改php.ini文件添加扩展
      vi /path/to/php.ini
      extension=seaslog.so
      
      # 检查扩展是否安装成功
      php -m | grep SeasLog
    • 安装过程中可能会遇到的问题

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      
      # phpize需要php-devel依赖
      Can't find PHP headers in /opt/rh/rh-php56/root/usr/include/php The php-devel package is required for use of this command.
      解决办法:
      1、先搜索此依赖
      yum search php-devel
      2、安装与当前版本兼容的依赖
      yum install rh-php56-php-devel
      
      # 查找php相关配置、扩展的位置
      1、查看php命令行位置
      which php
      2、查看phpize命令行位置
      which phpize
      3、查看php.ini位置
      php -i | grep Configuration
      4、查看php模块位置
      php -i | grep modules
      5、查看php是否已安装某扩展
      php -m | grep SeasLog
      6、查看配置项的值
      php -i | grep date.timezone
      7、修改默认timezone
      vi /path/to/php.ini
      date.timezone = "Asia/Shanghai"
      
      # 扩展无效的问题
      doesn't appear to be a valid Zend extension
      解决办法:
      使用:extension=seaslog.so
      不使用:zend_extension=seaslog.so

    SeasLog如何记录日志

    • 在php中写入日志

      1
      2
      3
      
      <?php
      
      SeasLog::info('this is a seaslog info');
    • 在日志目录查看日志

      1
      2
      3
      4
      5
      
      cd /data/log/default
      cat 20171210.log
      
      # 输出内容
      info | 17416 | 1512886743.284 | 2017:12:10 14:19:03 | this is a seaslog info

    参考资料