# SeasLog

# 简介

SeasLog 是一个高效、快速、稳定的 PHP 日志扩展。

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

PHP 内置 error_log、syslog 函数功能强大且性能极好，但由于各种缺陷(error_log 无错误级别、无固定格式，syslog 不分模块、与系统日志混合)，灵活度降低了很多，不能满足应用需求。

好消息是，有不少第三方的log类库弥补了上述缺陷，如 log4php、plog、monolog 等(当然也有很多应用在项目中自己开发的 Log 类)。

那么有没有一种 Log 类库满足以下需求呢：

- 分模块、分级别
- 配置简单（最好无需配置）
- 日志格式清晰易读
- 应用简单、性能很棒

SeasLog 正是应此需求而生。

目前提供了什么:

- 在 PHP 项目中便捷、规范地记录 Log
- 可配置的默认 Log 目录与模块
- 指定 Log 目录与获取当前配置
- 初步的分析预警框架
- 高效的日志缓冲、便捷的缓冲 debug
- 遵循 PSR-3 日志接口规范
- 自动记录错误信息
- 自动记录异常信息
- 连接 TCP 端口，以 RFC5424 格式发送日志
- 连接 UDP 端口，以 RFC5424 格式发送日志
- 支持 RequestId 区分请求
- 支持日志模板自定义

从Github上获取更多文档 » SeasLog 文档 。

- 安装/配置
  - 需求
  - 安装
  - 运行时配置
  - 资源类型
- 预定义常量
- 示例
- Seaslog 函数
  - seaslog_get_author — 获取 SeasLog 作者
  - seaslog_get_version — 获取 SeasLog 的版本
- SeasLog — The SeasLog class
  - SeasLog::alert — 记录 alert 日志
  - SeasLog::analyzerCount — Get log count by level, log_path and key_word
  - SeasLog::analyzerDetail — Get log detail by level, log_path, key_word, start, limit, order
  - SeasLog::closeLoggerStream — Manually release stream flow from logger
  - SeasLog::__construct — Description
  - SeasLog::critical — 记录 critical 日志
  - SeasLog::debug — 记录 debug 日志
  - SeasLog::__destruct — Description
  - SeasLog::emergency — 记录 emergency 日志
  - SeasLog::error — 记录 error 日志
  - SeasLog::flushBuffer — 将日志缓存刷新到介质中，文件介质，或者发送到远端的 TCP/UDP 服务地址
  - SeasLog::getBasePath — 获得 SeasLog 根目录
  - SeasLog::getBuffer — 获取内存中的日志缓存数组
  - SeasLog::getBufferEnabled — Determin if buffer enabled
  - SeasLog::getDatetimeFormat — 获取 SeasLog 日期格式
  - SeasLog::getLastLogger — 获得 SeasLog 最近的一次 Logger 名称
  - SeasLog::getRequestID — 获得当前 SeasLog 中用于区分请求的 request_id
  - SeasLog::getRequestVariable — Get SeasLog request variable
  - SeasLog::info — Record info log information
  - SeasLog::log — 公共的日志记录函数
  - SeasLog::notice — 记录 notice 日志
  - SeasLog::setBasePath — 设置 SeasLog 根目录
  - SeasLog::setDatetimeFormat — 设置 SeasLog 日期格式
  - SeasLog::setLogger — 设置 SeasLog 的 Logger 名
  - SeasLog::setRequestID — 设置可以由 SeasLog 用于区分请求的 request_id
  - SeasLog::setRequestVariable — Manually set SeasLog request variable
  - SeasLog::warning — Record warning log information

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open