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

5

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

谢谢。

1个回答

9

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

非常感谢您! - Dr. Marc
@Karthikeyan 当我执行putLogEvents时,我遇到了AccessDeniedException异常。我认为在AWS控制台中需要进行额外的设置。你知道如何实现吗? - Ramis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接