日志等级控制
在最新版本中底层已规范了日志等级控制相关的特性,并定义了相关常量。可使用下列方法设置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_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