diff --git a/.doc_gen/metadata/cloudwatch-logs_metadata.yaml b/.doc_gen/metadata/cloudwatch-logs_metadata.yaml
index 8b9621d5968..6a424e23c1b 100644
--- a/.doc_gen/metadata/cloudwatch-logs_metadata.yaml
+++ b/.doc_gen/metadata/cloudwatch-logs_metadata.yaml
@@ -11,6 +11,18 @@ cloudwatch-logs_AssociateKmsKey:
- CloudWatchLogs.dotnetv3.AssociateKmsKeyExample
services:
cloudwatch-logs: {AssociateKmsKey}
+cloudwatch-logs_GetLogEvents:
+ languages:
+ Java:
+ versions:
+ - sdk_version: 2
+ github: javav2/example_code/cloudwatch
+ excerpts:
+ - description:
+ snippet_tags:
+ - cloudwatch.java2.get_logs.main
+ services:
+ cloudwatch-logs: {GetLogEvents}
cloudwatch-logs_CancelExportTask:
languages:
.NET:
@@ -99,6 +111,19 @@ cloudwatch-logs_DescribeExportTasks:
- CloudWatchLogs.dotnetv3.DescribeExportTasksExammple
services:
cloudwatch-logs: {DescribeExportTasks}
+cloudwatch-logs_DescribeLogStreams:
+ languages:
+ Java:
+ versions:
+ - sdk_version: 2
+ github: javav2/example_code/cloudwatch
+ sdkguide:
+ excerpts:
+ - description:
+ snippet_tags:
+ - cloudwatch.javav2.describe.log.streams.main
+ services:
+ cloudwatch-logs: {DescribeLogStreams}
cloudwatch-logs_DescribeLogGroups:
languages:
.NET:
diff --git a/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/CloudWatchLogQuery.java b/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/CloudWatchLogQuery.java
new file mode 100644
index 00000000000..034f3b40a30
--- /dev/null
+++ b/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/CloudWatchLogQuery.java
@@ -0,0 +1,89 @@
+// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+// SPDX-License-Identifier: Apache-2.0
+
+
+package com.example.cloudwatch;
+
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.cloudwatchlogs.CloudWatchLogsClient;
+import software.amazon.awssdk.services.cloudwatchlogs.model.CloudWatchLogsException;
+import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsRequest;
+import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsResponse;
+import software.amazon.awssdk.services.cloudwatchlogs.model.GetLogEventsRequest;
+import software.amazon.awssdk.services.cloudwatchlogs.model.GetLogEventsResponse;
+import software.amazon.awssdk.services.cloudwatchlogs.model.LogStream;
+import software.amazon.awssdk.services.cloudwatchlogs.model.OrderBy;
+import software.amazon.awssdk.services.cloudwatchlogs.model.OutputLogEvent;
+import java.util.List;
+
+// snippet-start:[cloudwatch.javav2.describe.log.streams.main]
+/**
+ * Before running this Java V2 code example, set up your development
+ * environment, including your credentials.
+ *
+ * For more information, see the following documentation topic:
+ *
+ * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
+ */
+public class CloudWatchLogQuery {
+ public static void main(final String[] args) {
+ final String usage = """
+ Usage:
+
+
+ Where:
+ logGroupName - The name of the log group (for example, /aws/lambda/ChatAIHandler).
+ """;
+
+ if (args.length != 1) {
+ System.out.print(usage);
+ System.exit(1);
+ }
+
+ String logGroupName = "/aws/lambda/ChatAIHandler" ; //args[0];
+ CloudWatchLogsClient logsClient = CloudWatchLogsClient.builder()
+ .region(Region.US_EAST_1)
+ .build();
+
+ describeMostRecentLogStream(logsClient, logGroupName);
+ }
+
+ /**
+ * Describes and prints metadata about the most recent log stream in the specified log group.
+ *
+ * @param logsClient the CloudWatchLogsClient used to interact with AWS CloudWatch Logs
+ * @param logGroupName the name of the log group
+ */
+ public static void describeMostRecentLogStream(CloudWatchLogsClient logsClient, String logGroupName) {
+ DescribeLogStreamsRequest streamsRequest = DescribeLogStreamsRequest.builder()
+ .logGroupName(logGroupName)
+ .orderBy(OrderBy.LAST_EVENT_TIME)
+ .descending(true)
+ .limit(1)
+ .build();
+
+ try {
+ DescribeLogStreamsResponse streamsResponse = logsClient.describeLogStreams(streamsRequest);
+ List logStreams = streamsResponse.logStreams();
+
+ if (logStreams.isEmpty()) {
+ System.out.println("No log streams found for log group: " + logGroupName);
+ return;
+ }
+
+ LogStream stream = logStreams.get(0);
+ System.out.println("Most Recent Log Stream:");
+ System.out.println(" Name: " + stream.logStreamName());
+ System.out.println(" ARN: " + stream.arn());
+ System.out.println(" Creation Time: " + stream.creationTime());
+ System.out.println(" First Event Time: " + stream.firstEventTimestamp());
+ System.out.println(" Last Event Time: " + stream.lastEventTimestamp());
+ System.out.println(" Stored Bytes: " + stream.storedBytes());
+ System.out.println(" Upload Sequence Token: " + stream.uploadSequenceToken());
+
+ } catch (CloudWatchLogsException e) {
+ System.err.println("Failed to describe log stream: " + e.awsErrorDetails().errorMessage());
+ }
+ }
+}
+// snippet-end:[cloudwatch.javav2.describe.log.streams.main]
\ No newline at end of file
diff --git a/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/GetLogEvents.java b/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/GetLogEvents.java
index 1931da0fb3b..ab51aedaf95 100644
--- a/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/GetLogEvents.java
+++ b/javav2/example_code/cloudwatch/src/main/java/com/example/cloudwatch/GetLogEvents.java
@@ -26,20 +26,23 @@ public static void main(String[] args) {
final String usage = """
Usage:
-
+
Where:
- logStreamName - The name of the log stream (for example, mystream).
logGroupName - The name of the log group (for example, myloggroup).
+ logStreamName - The name of the log stream (for example, mystream).
+
""";
if (args.length != 2) {
System.out.print(usage);
System.exit(1);
+
}
- String logStreamName = args[0];
- String logGroupName = args[1];
+ String logGroupName = args[0];
+ String logStreamName = args[1];
+
Region region = Region.US_WEST_2;
CloudWatchLogsClient cloudWatchLogsClient = CloudWatchLogsClient.builder()
.region(region)