NOTE: For Version 3 of the AWS SDK for PHP, please see the V3 User Guide and V3 API Reference.

# Class LogFileIterator

The `Aws\CloudTrail\LogFileIterator` provides an easy way to iterate over log file generated by AWS CloudTrail. CloudTrail log files contain data about your AWS API calls and are stored in Amazon S3 at a predictable path based on a bucket name, a key prefix, an account ID, a region, and date information. This class allows you to specify options, including a date range, and emits each log file that match the provided options.

  IteratorIterator implements Iterator, Traversable, OuterIterator
  Aws\CloudTrail\LogFileIterator

Namespace: Aws\CloudTrail
Yields: array An array containing the Amazon S3 bucket and key of the log file
Located at Aws/CloudTrail/LogFileIterator.php

## Methods summary

- `public static` `forTrail ( Aws\S3\S3Client $s3Client, Aws\CloudTrail\CloudTrailClient $cloudTrailClient, array $options = array() )`

  Constructs a LogRecordIterator. This factory method is used if the name of the S3 bucket containing your logs is not known. This factory method uses a CloudTrail client and the trail name (or "Default") to find the information about the trail necessary for constructing the LogRecordIterator

- `public` `__construct ( Aws\S3\S3Client $s3Client, string $s3BucketName, array $options = array() )`

  Constructs a LogFileIterator using the specified options:

- `public` `current ( )`

  An override of the typical current behavior of \IteratorIterator to format the output such that the bucket and key are returned in an array

## Methods detail

# `public static `Aws\CloudTrail\LogRecordIterator``
`forTrail( `Aws\S3\S3Client` $s3Client, `Aws\CloudTrail\CloudTrailClient` $cloudTrailClient, array $options = array() )`

Constructs a LogRecordIterator. This factory method is used if the name of the S3 bucket containing your logs is not known. This factory method uses a CloudTrail client and the trail name (or "Default") to find the information about the trail necessary for constructing the LogRecordIterator

#### Parameters

$s3Client
  ``Aws\S3\S3Client``
  $s3Client
$cloudTrailClient
  ``Aws\CloudTrail\CloudTrailClient``
  $cloudTrailClient
$options
  `array`
  $options

#### Returns

``Aws\CloudTrail\LogRecordIterator``

#### Throws

``Aws\Common\Exception\InvalidArgumentException``

#### See

LogRecordIterator::__contruct
# `public`
`__construct( `Aws\S3\S3Client` $s3Client, string $s3BucketName, array $options = array() )`

Constructs a LogFileIterator using the specified options:

- trail_name: The name of the trail that is generating our logs. If none is provided, then "Default" will be used, since that is the name of the trail created in the AWS Management Console.
- key_prefix: The S3 key prefix of your log files. This value will be overwritten when using the `fromTrail()` method. However, if you are using the constructor, then this value will be used.
- start_date: The timestamp of the beginning of date range of the log records you want to read. You can pass this in as a `DateTime` object, integer (unix timestamp), or a string compatible with `strtotime()`.
- end_date: The timestamp of the end of date range of the log records you want to read. You can pass this in as a `DateTime` object, integer (unix timestamp), or a string compatible with `strtotime()`.
- account_id: This is your AWS account ID, which is the 12-digit number found on the Account Identifiers section of the AWS Security Credentials page. See https://console.aws.amazon.com/iam/home?#security_credential
- log_region: The region of the services of the log records you want to read.

#### Parameters

$s3Client
  ``Aws\S3\S3Client``
  $s3Client
$s3BucketName
  `string`
  $s3BucketName
$options
  `array`
  $options

#### Overrides

`IteratorIterator::__construct`
# `public array|boolean`
`current( )`

An override of the typical current behavior of \IteratorIterator to format the output such that the bucket and key are returned in an array

#### Returns

`array|boolean`

#### Overrides

`IteratorIterator::current`

### Methods inherited from IteratorIterator

`getInnerIterator()`, `key()`, `next()`, `rewind()`, `valid()`

### Magic methods summary

## Constants summary

`string` | `DEFAULT_TRAIL_NAME` | `'Default'` | #
`string` | `PREFIX_TEMPLATE` | `'prefix/AWSLogs/account/CloudTrail/region/date/'` | #
`string` | `PREFIX_WILDCARD` | `'*'` | #
`string` | `TRAIL_NAME` | `'trail_name'` | #
`string` | `KEY_PREFIX` | `'key_prefix'` | #
`string` | `START_DATE` | `'start_date'` | #
`string` | `END_DATE` | `'end_date'` | #
`string` | `ACCOUNT_ID` | `'account_id'` | #
`string` | `LOG_REGION` | `'log_region'` | #