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

时间:2018-11-23 12:46:29

标签: ios amazon-web-services amazon-cloudwatch

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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

pod 'AWSLogs', '~> 2.7'

文档: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()

一旦创建了日志客户端,就需要创建一个日志组和日志流。您可以通过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