You need to enable JavaScript to run this app.
导航

日志配置(C++ SDK)

最近更新时间2024.02.04 18:30:58

首次发布时间2022.10.17 20:58:25

C++ SDK 日志记录功能可以收集对 TOS 的各种操作日志,并将日志以文件形式存储在本地。

日志打印时机

对于一次接口调用,SDK 会在以下位置打印日志:

  • 请求前,DEBUG 级别打印本次接口调用请求签名原始值,包含 CanonicalRequest、StringToSign。
  • 请求中,DEBUG 级别打印本次接口调用 HTTP 连接信息和各环节耗时,包括 Method、Host、Request URI、DNS 解析时间、TCP 建立时间、TLS 握手时间、数据发送时间、HTTP 请求总耗时。
  • 请求后,INFO 级别打印本次请求的执行情况,如果请求失败,打印失败的信息,如果请求完成会打印 HTTP 状态码、RequestID、接口调用总耗时。

开启日志方式

以下代码展示了如何开启 C++ SDK 日志记录功能。

#include "TosClientV2.h"
#include "../src/utils/LogUtils.h"
using namespace VolcengineTos;

int main(void){
    std::string logFilePath = "Your Log File Path";
    // 以下代码展示了 C++ SDK 日志开启功能
    LogUtils::SetLogger(logFilePath, "tos-cpp-sdk", LogLevel::LogDebug);
    
    // 初始化 TOS 账号信息
    // Your Region 填写 Bucket 所在 Region
    std::string region = "Your Region";
    std::string accessKey = std::getenv("TOS_ACCESS_KEY");
    std::string secretKey = std::getenv("TOS_SECRET_KEY");
    
    // 初始化网络等资源
    InitializeClient();
    // 创建交互的 client
    TosClientV2 client(region, accessKey, secretKey);
    // 使用过程中调整打印级别
    LogUtils::SetLoggerLevel(LogLevel::LogOff);
    // 释放网络等资源
    CloseClient();
    return 0;
}

同时 CMakelist 文件中需要新增以下语句。

// CMakeList 文件中增加以下语句
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/sdk/src/external)

日志内容示例

[2022-12-07 22:59:31.811] [tos-cpp-sdk] [debug] canonicalRequest: PUT
/

date:20221207T145931Z
host:sdktest-bucket-1670425171810.tos-cn-chongqing-sdv.volces.com
x-tos-acl:private
x-tos-date:20221207T145931Z
x-tos-storage-class:STANDARD

date;host;x-tos-acl;x-tos-date;x-tos-storage-class
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
[2022-12-07 22:59:31.812] [tos-cpp-sdk] [debug] string to sign: TOS4-HMAC-SHA256
20221207T145931Z
20221207/cn-chongqing-sdv/tos/request
d67b2d6fc6aa98c269bf4ecaa963605fda4bc3286f550764b79dd61b32c9da74
[2022-12-07 22:59:31.998] [tos-cpp-sdk] [debug] Method:PUT, Host:sdktest-bucket-1670425171810.tos-cn-chongqing-sdv.volces.com, request uri:/, DNS resolution time:59 ms, TCP establish connection time:100 ms, TLS handshake time:0 ms, start transfer time:100 ms, Data sending time:85 ms, Total HTTP request time:185 ms
[2022-12-07 22:59:31.998] [tos-cpp-sdk] [info] Response StatusCode:200, RequestId:703f4890aa5428476390aa54-ac101de5-1p2vtU-CB-ccs-front-mtaz-c, Cost:186.078084 ms