PutLogEventsCommand

Uploads a batch of log events to the specified log stream.

The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream.

The batch of events must satisfy the following constraints:

  • The maximum batch size is 1,048,576 bytes. This size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for each log event.

  • None of the log events in the batch can be more than 2 hours in the future.

  • None of the log events in the batch can be more than 14 days in the past. Also, none of the log events can be from earlier than the retention period of the log group.

  • The log events in the batch must be in chronological order by their timestamp. The timestamp is the time that the event occurred, expressed as the number of milliseconds after Jan 1, 1970 00:00:00 UTC. (In Amazon Web Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss. For example, 2017-09-15T13:45:30.)

  • A batch of log events in a single request cannot span more than 24 hours. Otherwise, the operation fails.

  • Each log event can be no larger than 256 KB.

  • The maximum number of log events in a batch is 10,000.

  • The quota of five requests per second per log stream has been removed. Instead, PutLogEvents actions are throttled based on a per-second per-account quota. You can request an increase to the per-second throttling quota by using the Service Quotas service.

If a call to PutLogEvents returns "UnrecognizedClientException" the most likely cause is a non-valid Amazon Web Services access key ID or secret key.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { CloudWatchLogsClient, PutLogEventsCommand } from "@aws-sdk/client-cloudwatch-logs"; // ES Modules import
// const { CloudWatchLogsClient, PutLogEventsCommand } = require("@aws-sdk/client-cloudwatch-logs"); // CommonJS import
const client = new CloudWatchLogsClient(config);
const input = { // PutLogEventsRequest
  logGroupName: "STRING_VALUE", // required
  logStreamName: "STRING_VALUE", // required
  logEvents: [ // InputLogEvents // required
    { // InputLogEvent
      timestamp: Number("long"), // required
      message: "STRING_VALUE", // required
    },
  ],
  sequenceToken: "STRING_VALUE",
  entity: { // Entity
    keyAttributes: { // EntityKeyAttributes
      "<keys>": "STRING_VALUE",
    },
    attributes: { // EntityAttributes
      "<keys>": "STRING_VALUE",
    },
  },
};
const command = new PutLogEventsCommand(input);
const response = await client.send(command);
// { // PutLogEventsResponse
//   nextSequenceToken: "STRING_VALUE",
//   rejectedLogEventsInfo: { // RejectedLogEventsInfo
//     tooNewLogEventStartIndex: Number("int"),
//     tooOldLogEventEndIndex: Number("int"),
//     expiredLogEventEndIndex: Number("int"),
//   },
//   rejectedEntityInfo: { // RejectedEntityInfo
//     errorType: "InvalidEntity" || "InvalidTypeValue" || "InvalidKeyAttributes" || "InvalidAttributes" || "EntitySizeTooLarge" || "UnsupportedLogGroupType" || "MissingRequiredFields", // required
//   },
// };

PutLogEventsCommand Input

See PutLogEventsCommandInput for more details

Parameter
Type
Description
logEvents
Required
InputLogEvent[] | undefined

The log events.

logGroupName
Required
string | undefined

The name of the log group.

logStreamName
Required
string | undefined

The name of the log stream.

entity
Entity | undefined

The entity associated with the log events.

sequenceToken
string | undefined

The sequence token obtained from the response of the previous PutLogEvents call.

The sequenceToken parameter is now ignored in PutLogEvents actions. PutLogEvents actions are now accepted and never return InvalidSequenceTokenException or DataAlreadyAcceptedException even if the sequence token is not valid.

PutLogEventsCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.
nextSequenceToken
string | undefined

The next sequence token.

This field has been deprecated.

The sequence token is now ignored in PutLogEvents actions. PutLogEvents actions are always accepted even if the sequence token is not valid. You can use parallel PutLogEvents actions on the same log stream and you do not need to wait for the response of a previous PutLogEvents action to obtain the nextSequenceToken value.

rejectedEntityInfo
RejectedEntityInfo | undefined

Information about why the entity is rejected when calling PutLogEvents. Only returned when the entity is rejected.

When the entity is rejected, the events may still be accepted.

rejectedLogEventsInfo
RejectedLogEventsInfo | undefined

The rejected events.

Throws

Name
Fault
Details
DataAlreadyAcceptedException
client

The event was already logged.

PutLogEvents actions are now always accepted and never return DataAlreadyAcceptedException regardless of whether a given batch of log events has already been accepted.

InvalidParameterException
client

A parameter is specified incorrectly.

InvalidSequenceTokenException
client

The sequence token is not valid. You can get the correct sequence token in the expectedSequenceToken field in the InvalidSequenceTokenException message.

PutLogEvents actions are now always accepted and never return InvalidSequenceTokenException regardless of receiving an invalid sequence token.

ResourceNotFoundException
client

The specified resource does not exist.

ServiceUnavailableException
server

The service cannot complete the request.

UnrecognizedClientException
client

The most likely cause is an Amazon Web Services access key ID or secret key that's not valid.

CloudWatchLogsServiceException
Base exception class for all service exceptions from CloudWatchLogs service.