• 日志等级控制
    • 日志等级
    • 跟踪标签

    日志等级控制

    在最新版本中底层已规范了日志等级控制相关的特性,并定义了相关常量。可使用下列方法设置log_leveltrace_flags选项:

    • Swoole\Server->set方法
    • Swoole\Coroutine::set静态方法
    • Swoole\Async::set静态方法
    1. $serv->set([
    2. 'log_level' => SWOOLE_LOG_TRACE,
    3. 'trace_flags' => SWOOLE_TRACE_ALL,
    4. ]);

    日志等级

    可以通过设置log_level控制日志等级。底层支持6种错误日志等级:

    • SWOOLE_LOG_DEBUG:调试日志,仅作为内核开发调试使用
    • SWOOLE_LOG_TRACE:跟踪日志,可用于跟踪系统问题,调试日志是经过精心设置的,会携带关键性信息
    • SWOOLE_LOG_INFO:普通信息,仅作为信息展示
    • SWOOLE_LOG_NOTICE:提示信息,系统可能存在某些行为,如重启、关闭
    • SWOOLE_LOG_WARNING:警告信息,系统可能存在某些问题
    • SWOOLE_LOG_ERROR:错误信息,系统发生了某些关键性的错误,需要即时解决
      其中SWOOLE_LOG_DEBUGSWOOLE_LOG_TRACE两种日志,必须在编译swoole扩展时使用—enable-swoole-debug—enable-trace-log后才可以使用。正常版本中即使设置了log_level = SWOOLE_LOG_TRACE也是无法打印此类日志的。

    跟踪标签

    线上运行的服务,随时都有大量请求在处理,底层抛出的日志数量非常巨大。可使用trace_flags设置跟踪日志的标签,仅打印部分跟踪日志。trace_flags支持使用|或操作符设置多个跟踪项。

    1. $serv->set([
    2. 'log_level' => SWOOLE_LOG_TRACE,
    3. 'trace_flags' => SWOOLE_TRACE_SERVER | SWOOLE_TRACE_HTTP2,
    4. ]);

    底层支持以下跟踪项,可使用SWOOLE_TRACE_ALL表示跟踪所有项目:

    • SWOOLE_TRACE_SERVER
    • SWOOLE_TRACE_CLIENT
    • SWOOLE_TRACE_BUFFER
    • SWOOLE_TRACE_CONN
    • SWOOLE_TRACE_EVENT
    • SWOOLE_TRACE_WORKER
    • SWOOLE_TRACE_REACTOR
    • SWOOLE_TRACE_PHP
    • SWOOLE_TRACE_HTTP2
    • SWOOLE_TRACE_EOF_PROTOCOL
    • SWOOLE_TRACE_LENGTH_PROTOCOL
    • SWOOLE_TRACE_CLOSE
    • SWOOLE_TRACE_HTTP_CLIENT
    • SWOOLE_TRACE_COROUTINE
    • SWOOLE_TRACE_REDIS_CLIENT
    • SWOOLE_TRACE_MYSQL_CLIENT
    • SWOOLE_TRACE_AIO
    • SWOOLE_TRACE_ALL