日志上报

最近更新时间:2024-03-13 16:22:42

我的收藏

简介

本文档主要介绍 COS iOS SDK 如何集成日志上报功能。
注意:
COS iOS SDK 版本需要大于等于 v6.3.6。

功能说明

日志上报功能将客户端 COS SDK 的运行日志,上报至腾讯云日志服务 CLS。您可在 COS 控制台上查看请求成功率、任务次数、错误码以及地域等数据,便于您后续分析和了解业务运行情况。

费用说明

说明:
客户端 COS SDK的日志将被上报至腾讯云日志服务 CLS。上报后的日志,按照 CLS 计费规则计费,详情请参加见 计费概述
停止日志上报的方式有两种:
1. 在 podfile 中删除pod "QCloudTrack/Cls" 重新pod install,并删除初始化代码。 即可不再进行 CLS 日志上报初始化。
2. 从控制台删除对应的应用,删除应用将删除该应用的所有历史日志数据,且不可恢复。该操作属于高危操作,请您谨慎操作。

准备事项

登录 对象存储控制台-客户端日志分析,创建应用,相关操作请参见 日志上报-操作指南

操作步骤

步骤一、安装 CLS SDK

在 podfile 文件中加入:
pod "QCloudTrack/Cls"
执行 pod install 即可。

步骤二、初始化 CLS SDK

1. 前往 准备事项 中的应用列表,点击应用名称配置详情,进入该应用详情页,在基本信息页签中获取到日志主题ID地域 日志地域说明,例如:日志主题ID为 c09216e3-ade5-4725-a000-000000000000,地域为 ap-guangzhou。






- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中加入以下代码:
// 使用 TopicId 和 endpoint 示例化 CLS 上报服务(QCloudCLSTrackService);
QCloudCLSTrackService * service = [[QCloudCLSTrackService alloc]initWithTopicId:@"日志主题ID" endpoint:@"地域"];
// 将示例化的service 加入 QCloudTrackService 中并指定serviceKey
// serviceKey 固定值:qcloud_track_cos_sdk。
[[QCloudTrackService singleService] addTrackService:service serviceKey:@"qcloud_track_cos_sdk"];

步骤三、初始化密钥

1、使用临时密钥进行上报

注意:
建议用户 使用临时密钥,通过临时授权的方式进一步提高安全性。申请临时密钥时,请遵循 最小权限指引原则,防止泄露目标之外的资源。
如果您一定要使用永久密钥,建议遵循 最小权限指引原则 对永久密钥的权限范围进行限制。
临时密钥的获取可以参考:使用临时密钥访问 CLS获取联合身份临时访问凭证(授权策略中 action 设置为 name/cls:pushLog)。
[service setupCredentialsRefreshBlock:^QCloudClsSessionCredentials * _Nonnull{
QCloudClsSessionCredentials * credentials = [QCloudClsSessionCredentials new];
credentials.secretId = @"SECRETID"; // 临时密钥 SecretId
credentials.secretKey = @"SECRETKEY"; // 临时密钥 SecretKey
credentials.token = @"SESSIONTOKEN"; // 临时密钥 Token
credentials.expiredTime = 1556183496L;//临时密钥有效截止时间戳,单位是秒
// 最后返回临时密钥信息对象
return credentials;
}];

2、使用永久密钥进行上报

您可以使用腾讯云的固定密钥来进行开发阶段的本地调试。由于该方式存在泄露密钥的风险,请务必在上线前替换为临时密钥的方式。
注意:
开发模式调试上报时请将项目切换为 Release 模式运行,或将 DEBUG 宏改为0。
QCloudClsSessionCredentials * credentials = [QCloudClsSessionCredentials new];
//用户的 SecretId,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。
//子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
credentials.secretId = @"SECRETID";

//用户的 SecretKey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。
//子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
credentials.secretKey = @"SECRETKEY";

[service setupPermanentCredentials:cre];

步骤四、设置网络权限

CLS 日志上传是基于 HTTP 的,因此需要配置支持 HTTP 请求,需要在项目的 info.plist 文件中添加 App Transport Security Settings->Allow Arbitrary Loads ,并设置为 YES。

步骤五、配置自定义字段

1. 在日志主题索引字段中增加自定义字段。
2. 代码中设置上述自定义字段和具体的值。
NSDictionary * businessParams = @{
@"businessKey1":@"businessValue1",
@"businessKey2":@"businessValue2",
@"businessKey3":@"businessValue3"
};
[[QCloudTrackService singleService] setBusinessParams:businessParams];

步骤六、结果验证

前往应用的日志数据详情中进行验证,详情请参考 日志分析