AWS Security ChangesHomeSearch

AWS code-library documentation change

Service: code-library · 2025-10-16 · Documentation low

File: code-library/latest/ug/java_2_cloudwatch-logs_code_examples.md

Summary

Changed region from US_WEST_2 to US_EAST_1 in code examples

Security assessment

Regional configuration changes are routine and don't inherently relate to security aspects unless specifically called out in documentation, which they are not here.

Diff

diff --git a/code-library/latest/ug/java_2_cloudwatch-logs_code_examples.md b/code-library/latest/ug/java_2_cloudwatch-logs_code_examples.md
index a15e75ad4..4efa0ce7f 100644
--- a//code-library/latest/ug/java_2_cloudwatch-logs_code_examples.md
+++ b//code-library/latest/ug/java_2_cloudwatch-logs_code_examples.md
@@ -37 +37 @@ The following code example shows how to use `DeleteSubscriptionFilter`.
-There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch#code-examples). 
+There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch-logs#code-examples). 
@@ -109 +109,85 @@ The following code example shows how to use `DescribeLogStreams`.
-There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch#code-examples). 
+There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch-logs#code-examples). 
+
+Searches for log streams within a specified log group that match a given prefix.
+    
+    
+    /**
+     * Before running this Java V2 code example, set up your development
+     * environment, including your credentials.
+     * <p>
+     * For more information, see the following documentation topic:
+     * <p>
+     * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
+     */
+    public class CloudWatchLogsSearch {
+    
+        public static void main(String[] args) {
+            final String usage = """
+    
+                    Usage:
+                      <logGroupName> <logStreamName> 
+    
+                    Where:
+                      logGroupName - The name of the log group (for example, WeathertopJavaContainerLogs).
+                      logStreamName - The name of the log stream (for example, weathertop-java-stream).
+                      pattern - the pattern to use (for example, INFO) 
+                      
+                    """;
+    
+            if (args.length != 3) {
+                System.out.print(usage);
+                System.exit(1);
+            }
+    
+            String logGroupName = args[0] ;
+            String logStreamName = args[1] ;
+            String pattern = args[2] ;
+    
+            CloudWatchLogsClient cwlClient = CloudWatchLogsClient.builder()
+                    .region(Region.US_EAST_1)
+                    .build();
+    
+            searchLogStreamsAndFilterEvents(cwlClient, logGroupName, logStreamName, pattern);
+        }
+    
+        /**
+         * Searches for log streams with a specific prefix within a log group and filters log events based on a specified pattern.
+         *
+         * @param cwlClient       the CloudWatchLogsClient used to interact with AWS CloudWatch Logs
+         * @param logGroupName    the name of the log group to search within
+         * @param logStreamPrefix the prefix of the log streams to search for
+         * @param pattern         the pattern to filter log events by
+         */
+        public static void searchLogStreamsAndFilterEvents(CloudWatchLogsClient cwlClient, String logGroupName, String logStreamPrefix, String pattern) {
+            DescribeLogStreamsRequest describeLogStreamsRequest = DescribeLogStreamsRequest.builder()
+                    .logGroupName(logGroupName)
+                    .logStreamNamePrefix(logStreamPrefix)
+                    .build();
+    
+            DescribeLogStreamsResponse describeLogStreamsResponse = cwlClient.describeLogStreams(describeLogStreamsRequest);
+            List<LogStream> logStreams = describeLogStreamsResponse.logStreams();
+    
+            for (LogStream logStream : logStreams) {
+                String logStreamName = logStream.logStreamName();
+                System.out.println("Searching in log stream: " + logStreamName);
+    
+                FilterLogEventsRequest filterLogEventsRequest = FilterLogEventsRequest.builder()
+                        .logGroupName(logGroupName)
+                        .logStreamNames(logStreamName)
+                        .filterPattern(pattern)
+                        .build();
+    
+                FilterLogEventsResponse filterLogEventsResponse = cwlClient.filterLogEvents(filterLogEventsRequest);
+    
+                for (FilteredLogEvent event : filterLogEventsResponse.events()) {
+                    System.out.println(event.message());
+                }
+    
+                System.out.println("--------------------------------------------------"); // Separator for better readability
+            }
+        }
+    }
+    
+    
+
+Prints metadata about the most recent log stream in a specified log group.
@@ -196 +280 @@ The following code example shows how to use `DescribeSubscriptionFilters`.
-There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch#code-examples). 
+There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch-logs#code-examples). 
@@ -302,0 +387,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
+    import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsRequest;
+    import software.amazon.awssdk.services.cloudwatchlogs.model.DescribeLogStreamsResponse;
@@ -303,0 +390,4 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
+    import software.amazon.awssdk.services.cloudwatchlogs.model.GetLogEventsResponse;
+    
+    import java.time.Instant;
+    import java.time.temporal.ChronoUnit;
@@ -328,3 +418,4 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            if (args.length != 2) {
-                System.out.print(usage);
-                System.exit(1);
+           // if (args.length != 2) {
+           //     System.out.print(usage);
+           //     System.exit(1);
+    //        }
@@ -332,4 +423,2 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            }
-    
-            String logGroupName = args[0];
-            String logStreamName = args[1];
+            String logGroupName = "WeathertopJavaContainerLogs" ; //args[0];
+            String logStreamName = "weathertop-java-stream" ; //args[1];
@@ -337 +426 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-            Region region = Region.US_WEST_2;
+            Region region = Region.US_EAST_1 ;
@@ -346,2 +435,3 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-        public static void getCWLogEvents(CloudWatchLogsClient cloudWatchLogsClient, String logGroupName,
-                String logStreamName) {
+        public static void getCWLogEvents(CloudWatchLogsClient cloudWatchLogsClient,
+                                          String logGroupName,
+                                          String logStreamPrefix) {
@@ -348,0 +439,20 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
+                // First, find the exact log stream name
+                DescribeLogStreamsRequest describeRequest = DescribeLogStreamsRequest.builder()
+                        .logGroupName(logGroupName)
+                        .logStreamNamePrefix(logStreamPrefix)
+                        .limit(1) // get the first matching stream
+                        .build();
+    
+                DescribeLogStreamsResponse describeResponse = cloudWatchLogsClient.describeLogStreams(describeRequest);
+    
+                if (describeResponse.logStreams().isEmpty()) {
+                    System.out.println("No matching log streams found for prefix: " + logStreamPrefix);
+                    return;
+                }
+    
+                String exactLogStreamName = describeResponse.logStreams().get(0).logStreamName();
+                System.out.println("Using exact log stream: " + exactLogStreamName);
+    
+                long startTime = Instant.now().minus(7, ChronoUnit.DAYS).toEpochMilli();
+                long endTime = Instant.now().toEpochMilli();
+    
@@ -351 +461,3 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                        .logStreamName(logStreamName)
+                        .logStreamName(exactLogStreamName) // <-- exact name, not prefix
+                        .startTime(startTime)
+                        .endTime(endTime)
@@ -355,4 +467 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                int logLimit = cloudWatchLogsClient.getLogEvents(getLogEventsRequest).events().size();
-                for (int c = 0; c < logLimit; c++) {
-                    System.out.println(cloudWatchLogsClient.getLogEvents(getLogEventsRequest).events().get(c).message());
-                }
+                GetLogEventsResponse response = cloudWatchLogsClient.getLogEvents(getLogEventsRequest);
@@ -360 +469,5 @@ There's more on GitHub. Find the complete example and learn how to set up and ru
-                System.out.println("Successfully got CloudWatch log events!");
+                if (response.events().isEmpty()) {
+                    System.out.println("No log events found in the past 7 days.");
+                } else {
+                    response.events().forEach(e -> System.out.println(e.message()));
+                }
@@ -383 +496 @@ The following code example shows how to use `PutSubscriptionFilter`.
-There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch#code-examples). 
+There's more on GitHub. Find the complete example and learn how to set up and run in the [AWS Code Examples Repository](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/cloudwatch-logs#code-examples).