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

How to send Logs to CloudWatch from a iOS App?

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

谢谢。

您可以使用 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