如何从iOS应用将日志发送到CloudWatch?

Dr.*_*arc 3 amazon-web-services ios amazon-cloudwatch

我有一个iOS应用,想要记录一些事情,例如发生错误时。是否可以将这些日志发送到Cloudwatch?

谢谢。

Kar*_*yan 5

您可以使用AWSLogsSDK将日志从iOS应用发送到CloudWatch。将以下行添加到“应用目标”部分下的Podfile中,以通过cocoapods使用SDK:

pod 'AWSLogs', '~> 2.7'
Run Code Online (Sandbox Code Playgroud)

文档:https : //github.com/aws-amplify/aws-sdk-ios/tree/master/AWSLogs 来源:https : //github.com/aws-amplify/aws-sdk-ios/tree/master/AWSLogs

要实例化客户端,请执行以下操作:

let logs = AWSLogs.default()
Run Code Online (Sandbox Code Playgroud)

一旦创建了日志客户端,就需要创建一个日志组和日志流。您可以通过Amazon CloudWatch Logs控制台或通过SDK执行此操作。如果要使用SDK创建,请执行以下操作:

创建一个日志组:

https://aws-amplify.github.io/aws-sdk-ios/docs/reference/Classes/AWSLogs.html#//api/name/createLogGroup

创建一个日志流:

https://aws-amplify.github.io/aws-sdk-ios/docs/reference/Classes/AWSLogs.html#//api/name/createLogStream

现在,您可以开始将日志发送到日志流。您需要一个序列令牌,可以通过DescribeLogStreams调用获得该令牌。参见https://aws-amplify.github.io/aws-sdk-ios/docs/reference/Classes/AWSLogs.html#//api/name/DescribeLogStreams

之后,您可以致电putLogEvents以发送日志:

https://aws-amplify.github.io/aws-sdk-ios/docs/reference/Classes/AWSLogs.html#//api/name/putLogEvents

您可以看一下我们的测试示例:https : //github.com/aws-amplify/aws-sdk-ios/blob/master/AWSLogsUnitTests/AWSGeneralLogsTests.m#L1247