- 日志等级控制
- 日志等级
- 跟踪标签
日志等级控制
在最新版本中底层已规范了日志等级控制相关的特性,并定义了相关常量。可使用下列方法设置log_level和trace_flags选项:
Swoole\Server->set方法Swoole\Coroutine::set静态方法Swoole\Async::set静态方法
$serv->set(['log_level' => SWOOLE_LOG_TRACE,'trace_flags' => SWOOLE_TRACE_ALL,]);
日志等级
可以通过设置log_level控制日志等级。底层支持6种错误日志等级:
SWOOLE_LOG_DEBUG:调试日志,仅作为内核开发调试使用SWOOLE_LOG_TRACE:跟踪日志,可用于跟踪系统问题,调试日志是经过精心设置的,会携带关键性信息SWOOLE_LOG_INFO:普通信息,仅作为信息展示SWOOLE_LOG_NOTICE:提示信息,系统可能存在某些行为,如重启、关闭SWOOLE_LOG_WARNING:警告信息,系统可能存在某些问题SWOOLE_LOG_ERROR:错误信息,系统发生了某些关键性的错误,需要即时解决
其中SWOOLE_LOG_DEBUG和SWOOLE_LOG_TRACE两种日志,必须在编译swoole扩展时使用—enable-swoole-debug或—enable-trace-log后才可以使用。正常版本中即使设置了log_level = SWOOLE_LOG_TRACE也是无法打印此类日志的。
跟踪标签
线上运行的服务,随时都有大量请求在处理,底层抛出的日志数量非常巨大。可使用trace_flags设置跟踪日志的标签,仅打印部分跟踪日志。trace_flags支持使用|或操作符设置多个跟踪项。
$serv->set(['log_level' => SWOOLE_LOG_TRACE,'trace_flags' => SWOOLE_TRACE_SERVER | SWOOLE_TRACE_HTTP2,]);
底层支持以下跟踪项,可使用SWOOLE_TRACE_ALL表示跟踪所有项目:
SWOOLE_TRACE_SERVERSWOOLE_TRACE_CLIENTSWOOLE_TRACE_BUFFERSWOOLE_TRACE_CONNSWOOLE_TRACE_EVENTSWOOLE_TRACE_WORKERSWOOLE_TRACE_REACTORSWOOLE_TRACE_PHPSWOOLE_TRACE_HTTP2SWOOLE_TRACE_EOF_PROTOCOLSWOOLE_TRACE_LENGTH_PROTOCOLSWOOLE_TRACE_CLOSESWOOLE_TRACE_HTTP_CLIENTSWOOLE_TRACE_COROUTINESWOOLE_TRACE_REDIS_CLIENTSWOOLE_TRACE_MYSQL_CLIENTSWOOLE_TRACE_AIOSWOOLE_TRACE_ALL
