Swoole v4.8.1 版本釋出,支援忽略指定錯誤碼的日誌

沈唁發表於2021-10-29

v4.8.1 版本主要優化了 admin server 的程式碼,沒有向下不相容改動。

支援忽略指定的錯誤碼日誌

在此版本中增加了可以忽略指定的錯誤碼所對應的錯誤日誌,舉個例子:

const LOG_FILE = __DIR__ . '/log';
if (is_file(LOG_FILE)) {
    unlink(LOG_FILE);
}

const ERRNO_1 = 888888;
const ERRNO_2 = 999999;

swoole_async_set(['log_file' => LOG_FILE]);
swoole_error_log(SWOOLE_LOG_NOTICE, 'swoole_error_log msg');
swoole_error_log_ex(SWOOLE_LOG_NOTICE, ERRNO_1, 'swoole_error_log_ex msg');

// 忽略錯誤碼為ERRNO_2的日誌
swoole_ignore_error(ERRNO_2);
swoole_error_log_ex(SWOOLE_LOG_NOTICE, ERRNO_2, 'swoole_error_log_ex ERRNO_2 msg');

echo file_get_contents(LOG_FILE);

忽略了錯誤碼為ERRNO_2的日誌,所以檢視錯誤日誌中沒有swoole_error_log_ex ERRNO_2 msg的資訊。

[2021-10-28 10:34:01 @23580.0]  NOTICE  swoole_error_log msg
[2021-10-28 10:34:01 @23580.0]  NOTICE  zif_swoole_error_log_ex() (ERRNO 888888): swoole_error_log_ex msg

同時也可以使用swoole_error_log_ex函式寫入指定錯誤等級、錯誤碼的日誌到日誌檔案中。

Admin Server

此版本中優化了大量的 admin_server 的程式碼:

  • 遷移 ext-swoole_plus 中的 admin api 到 ext-swoole,可以使用 Swoole Dashboard 的全部功能

  • 支援了併發請求多個目標和併發請求多個 API,詳情可以檢視 RFC #78
  • 新增 get_composer_packages 命令,可以檢視專案中的 composer 依賴資訊

  • 支援獲取某個類中的方法資訊
  • 支援獲取某個interface的資訊

可以更新 swoole 版本後,前往 Swoole Dashboard 進行體驗。

更新日誌

下面是完整的更新日誌:

新增 API

  • 新增 swoole_error_log_ex()swoole_ignore_error() 函式 (#4440) (@matyhtf)

增強

  • 遷移 ext-swoole_plus 中的 admin api 到 ext-swoole (#4441) (@matyhtf)
  • admin server 新增 get_composer_packages 命令 (swoole/library@07763f46) (swoole/library@8805dc05) (swoole/library@175f1797) (@sy-records) (@yunbaoi)
  • 增加了寫操作的 POST 方法請求限制 (swoole/library@ac16927c) (@yunbaoi)
  • admin server 支援獲取類方法資訊 (swoole/library@690a1952) (@djw1028769140) (@sy-records)
  • 優化 admin server 程式碼 (swoole/library#128) (swoole/library#131) (@sy-records)
  • admin server 支援併發請求多個目標和併發請求多個 API (swoole/library#124) (@sy-records)
  • admin server 支援獲取介面資訊 (swoole/library#130) (@sy-records)
  • SWOOLE_HOOK_CURL 支援 CURLOPT_HTTPPROXYTUNNEL (swoole/library#126) (@sy-records)

修復

  • join 方法禁止併發呼叫同一個協程 (#4442) (@matyhtf)
  • 修復 Table 原子鎖意外釋放的問題 (#4446) (@Txhua) (@matyhtf)
  • 修復丟失的 helper options (swoole/library#123) (@sy-records)
  • 修復 get_static_property_value 命令引數錯誤 (swoole/library#129) (@sy-records)

相關文章