Java源码示例:software.amazon.awssdk.services.cloudwatchlogs.model.GetLogEventsRequest

示例1
public static void getCWLogEvebts(CloudWatchLogsClient cloudWatchLogsClient, String logGroupName, String logStreamName) {


        try {

            // Designate the logGroupName and logStream you want to get logs from
            // Assume only one stream name exists, however, this isn't always the case
            GetLogEventsRequest getLogEventsRequest = GetLogEventsRequest.builder()
                .logGroupName(logGroupName)
                .logStreamName(logStreamName)
                .startFromHead(true)
                .build();

            int logLimit = cloudWatchLogsClient.getLogEvents(getLogEventsRequest).events().size();
            for (int c = 0; c < logLimit; c++) {
                // Prints the messages to the console
                System.out.println(cloudWatchLogsClient.getLogEvents(getLogEventsRequest).events().get(c).message());
            }
        } catch (CloudWatchException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }

        System.out.println("Successfully got CloudWatch log events!");
        // snippet-end:[cloudwatch.java2.get_logs.main]
    }
 
示例2
/**
 * Test uploading and retrieving log events.
 */
@Test
public void testEventsLogging() {
    // No log event is expected in the newly created log stream
    GetLogEventsResponse getResult = awsLogs.getLogEvents(GetLogEventsRequest.builder().logGroupName(logGroupName).logStreamName(logStreamName).build());
    Assert.assertTrue(getResult.events().isEmpty());

    // Insert a new log event
    PutLogEventsRequest request = PutLogEventsRequest.builder()
                                                     .logGroupName(logGroupName)
                                                     .logStreamName(logStreamName)
                                                     .logEvents(InputLogEvent.builder()
                                                                             .message(LOG_MESSAGE)
                                                                             .timestamp(LOG_MESSAGE_TIMESTAMP)
                                                                             .build())
                                                     .build();
    PutLogEventsResponse putResult = awsLogs.putLogEvents(request);

    Assert.assertNotNull(putResult.nextSequenceToken());

    // The new log event is not instantly available in GetLogEvents operation.
    try {
        Thread.sleep(5000);
    } catch (InterruptedException ignored) {
        // Ignored or expected.
    }

    // Pull the event from the log stream
    getResult = awsLogs.getLogEvents(GetLogEventsRequest.builder().logGroupName(logGroupName).logStreamName(logStreamName).build());
    Assert.assertEquals(1, getResult.events().size());
    Assert.assertNotNull(getResult.nextBackwardToken());
    Assert.assertNotNull(getResult.nextForwardToken());

    OutputLogEvent event = getResult.events().get(0);
    Assert.assertEquals(LOG_MESSAGE, event.message());
    Assert.assertEquals(LOG_MESSAGE_TIMESTAMP, event.timestamp().longValue());

    // Use DescribeLogStreams API to verify that the new log event has
    // updated the following parameters of the log stream.
    final LogStream stream = findLogStreamByName(awsLogs, logGroupName, logStreamName);
    Assert.assertEquals(LOG_MESSAGE_TIMESTAMP, stream.firstEventTimestamp().longValue());
    Assert.assertEquals(LOG_MESSAGE_TIMESTAMP, stream.lastEventTimestamp().longValue());
    Assert.assertNotNull(stream.lastIngestionTime());
}