<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/refs.basic.other.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'book.seaslog.php',
    1 => 'SeasLog',
    2 => 'SeasLog',
  ),
  'up' => 
  array (
    0 => 'refs.basic.other.php',
    1 => '其它基本扩展',
  ),
  'prev' => 
  array (
    0 => 'class.random-randomexception.php',
    1 => 'Random\\RandomException',
  ),
  'next' => 
  array (
    0 => 'seaslog.setup.php',
    1 => '安装/配置',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    'path' => 'reference/seaslog/book.xml',
  ),
  'history' => 
  array (
  ),
  'extra_header_links' => 
  array (
    'rel' => 'alternate',
    'href' => '/manual/en/feeds/book.seaslog.atom',
    'type' => 'application/atom+xml',
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="book.seaslog" class="book">
 
 <h1 class="title">SeasLog</h1>
 

 <div id="intro.seaslog" class="preface">
  <h1 class="title">简介</h1>
  <p class="simpara">
    <abbr>SeasLog</abbr> 是一个高效、快速、稳定的 PHP 日志扩展。
  </p>
  <p class="simpara">
   Log 日志，通常是系统或软件、应用的运行记录。
   通过 Log 的分析，可以方便用户了解系统或软件、应用的运行情况；
   如果你的应用 Log 足够丰富，也可以分析以往用户的操作行为、类型喜好、地域分布或其他更多信息；
   如果一个应用的 Log 同时也分了多个级别，那么可以很轻易地分析得到该应用的健康状况，
   及时发现问题并快速定位、解决问题，补救损失。
  </p>
  <p class="simpara">
   PHP 内置 error_log、syslog 函数功能强大且性能极好，但由于各种缺陷(error_log 无错误级别、无固定格式，syslog 不分模块、与系统日志混合)，灵活度降低了很多，不能满足应用需求。
  </p>
  <p class="simpara">
   好消息是，有不少第三方的log类库弥补了上述缺陷，如 log4php、plog、monolog 等(当然也有很多应用在项目中自己开发的 Log 类)。
  </p>
  <p class="para">
   那么有没有一种 Log 类库满足以下需求呢：
    <ul class="simplelist">
        <li>分模块、分级别</li>
        <li>配置简单（最好无需配置）</li>
        <li>日志格式清晰易读</li>
        <li>应用简单、性能很棒</li>
    </ul>
    <abbr>SeasLog</abbr> 正是应此需求而生。
  </p>
  <p class="para">
   目前提供了什么:
    <ul class="simplelist">
        <li>在 PHP 项目中便捷、规范地记录 Log</li>
        <li>可配置的默认 Log 目录与模块</li>
        <li>指定 Log 目录与获取当前配置</li>
        <li>初步的分析预警框架</li>
        <li>高效的日志缓冲、便捷的缓冲 debug</li>
        <li>遵循 PSR-3 日志接口规范</li>
        <li>自动记录错误信息</li>
        <li>自动记录异常信息</li>
        <li>连接 TCP 端口，以 RFC5424 格式发送日志</li>
        <li>连接 UDP 端口，以 RFC5424 格式发送日志</li>
        <li>支持 RequestId 区分请求</li>
        <li>支持日志模板自定义</li>
    </ul>
  </p>
  <p class="simpara">
   从Github上获取更多文档 <a href="https://seasx.github.io/SeasLog/" class="link external">&raquo;&nbsp;SeasLog 文档</a> 。
  </p>
 </div>

 




 






 






 






 





<ul class="chunklist chunklist_book"><li><a href="seaslog.setup.php">安装/配置</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="seaslog.requirements.php">需求</a></li><li><a href="seaslog.installation.php">安装</a></li><li><a href="seaslog.configuration.php">运行时配置</a></li><li><a href="seaslog.resources.php">资源类型</a></li></ul></li><li><a href="seaslog.constants.php">预定义常量</a></li><li><a href="seaslog.examples.php">示例</a></li><li><a href="ref.seaslog.php">Seaslog 函数</a><ul class="chunklist chunklist_book chunklist_children"><li><a href="function.seaslog-get-author.php">seaslog_get_author</a> — 获取 SeasLog 作者</li><li><a href="function.seaslog-get-version.php">seaslog_get_version</a> — 获取 SeasLog 的版本</li></ul></li><li><a href="class.seaslog.php">SeasLog</a> — The SeasLog class<ul class="chunklist chunklist_book chunklist_children"><li><a href="seaslog.alert.php">SeasLog::alert</a> — 记录 alert 日志</li><li><a href="seaslog.analyzercount.php">SeasLog::analyzerCount</a> — Get log count by level, log_path and key_word</li><li><a href="seaslog.analyzerdetail.php">SeasLog::analyzerDetail</a> — Get log detail by level, log_path, key_word, start, limit, order</li><li><a href="seaslog.closeloggerstream.php">SeasLog::closeLoggerStream</a> — Manually release stream flow from logger</li><li><a href="seaslog.construct.php">SeasLog::__construct</a> — Description</li><li><a href="seaslog.critical.php">SeasLog::critical</a> — 记录 critical 日志</li><li><a href="seaslog.debug.php">SeasLog::debug</a> — 记录 debug 日志</li><li><a href="seaslog.destruct.php">SeasLog::__destruct</a> — Description</li><li><a href="seaslog.emergency.php">SeasLog::emergency</a> — 记录 emergency 日志</li><li><a href="seaslog.error.php">SeasLog::error</a> — 记录 error 日志</li><li><a href="seaslog.flushbuffer.php">SeasLog::flushBuffer</a> — 将日志缓存刷新到介质中，文件介质，或者发送到远端的 TCP/UDP 服务地址</li><li><a href="seaslog.getbasepath.php">SeasLog::getBasePath</a> — 获得 SeasLog 根目录</li><li><a href="seaslog.getbuffer.php">SeasLog::getBuffer</a> — 获取内存中的日志缓存数组</li><li><a href="seaslog.getbufferenabled.php">SeasLog::getBufferEnabled</a> — Determin if buffer enabled</li><li><a href="seaslog.getdatetimeformat.php">SeasLog::getDatetimeFormat</a> — 获取 SeasLog 日期格式</li><li><a href="seaslog.getlastlogger.php">SeasLog::getLastLogger</a> — 获得 SeasLog 最近的一次 Logger 名称</li><li><a href="seaslog.getrequestid.php">SeasLog::getRequestID</a> — 获得当前 SeasLog 中用于区分请求的 request_id</li><li><a href="seaslog.getrequestvariable.php">SeasLog::getRequestVariable</a> — Get SeasLog request variable</li><li><a href="seaslog.info.php">SeasLog::info</a> — Record info log information</li><li><a href="seaslog.log.php">SeasLog::log</a> — 公共的日志记录函数</li><li><a href="seaslog.notice.php">SeasLog::notice</a> — 记录 notice 日志</li><li><a href="seaslog.setbasepath.php">SeasLog::setBasePath</a> — 设置 SeasLog 根目录</li><li><a href="seaslog.setdatetimeformat.php">SeasLog::setDatetimeFormat</a> — 设置 SeasLog 日期格式</li><li><a href="seaslog.setlogger.php">SeasLog::setLogger</a> — 设置 SeasLog 的 Logger 名</li><li><a href="seaslog.setrequestid.php">SeasLog::setRequestID</a> — 设置可以由 SeasLog 用于区分请求的 request_id</li><li><a href="seaslog.setrequestvariable.php">SeasLog::setRequestVariable</a> — Manually set SeasLog request variable</li><li><a href="seaslog.warning.php">SeasLog::warning</a> — Record warning log information</li></ul></li></ul></div><?php manual_footer($setup); ?>