public void SimpleLoggingTest(string logGroupName) { LogMessages(SIMPLELOGTEST_COUNT); GetLogEventsResponse getLogEventsResponse = new GetLogEventsResponse(); if (NotifyLoggingCompleted(logGroupName, "LASTMESSAGE")) { DescribeLogStreamsResponse describeLogstreamsResponse = Client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; getLogEventsResponse = Client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; var customStreamSuffix = describeLogstreamsResponse.LogStreams[0].LogStreamName.Split('-').Last().Trim(); Assert.Equal(CUSTOMSTREAMSUFFIX, customStreamSuffix); } Assert.Equal(SIMPLELOGTEST_COUNT, getLogEventsResponse.Events.Count()); _testFixture.LogGroupNameList.Add(logGroupName); }
static void Main(string[] args) { var client = new AmazonCloudWatchLogsClient(Amazon.RegionEndpoint.USEast2); var response = client.GetLogEventsAsync(mkreq()).Result; dumpevts(response); while (response.NextForwardToken != null) { response = client.GetLogEventsAsync(mkreq(response.NextForwardToken)).Result; dumpevts(response); } }
public void Log4Net() { XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config")); logger = LogManager.GetLogger("Log4Net"); for (int i = 0; i < 10; i++) { logger.Debug(string.Format("Test logging message {0} Log4Net", i)); } //Added Sleep to give sufficient time for the log stream to get posted on CloudWatch Thread.Sleep(10000); string region = "us-west-2"; string logGroupName = "AWSLog4NetGroupLog4Net"; AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(10, getLogEventsResponse.Events.Count()); }
private List <string> GetLogMessages(string lambdaName) { var logGroup = GetLogGroup(lambdaName); _logsClient = new AmazonCloudWatchLogsClient(); var logStreams = _logsClient .DescribeLogStreamsAsync(new DescribeLogStreamsRequest(logGroup)).Result .LogStreams; var responses = new List <GetLogEventsResponse>(); foreach (var logStream in logStreams) { responses.Add(_logsClient.GetLogEventsAsync(new GetLogEventsRequest(logGroup, logStream.LogStreamName)).Result); } // Each response has many events so // simple Select would yield a nested array [[event1, event2,...event99] , [event101, event102,...event199] , [event200, event201,...event299]] // SelectMany flattens the array [event1, event2,...event299]] var messages = responses.SelectMany(x => x.Events) .Where(x => x.Message.StartsWith("Location:")) .Select(x => x.Message) .ToList(); return(messages); }
public void ILogger() { LoggerConfigSectionSetup("appsettings.json", null); var logger = LoggerSetup(); for (int i = 0; i < 10; i++) { logger.LogDebug(string.Format("Test logging message {0} Ilogger", i)); } //Sleep is introduced to give suffiecient time for the logstream to get posted on CloudWatchLogs Thread.Sleep(5000); string region = _configSection.Config.Region; string logGroupName = _configSection.Config.LogGroup; AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(10, getLogEventsResponse.Events.Count()); }
public async Task <List <LogEntry> > GetAll(string text) { using (var client = new AmazonCloudWatchLogsClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, RegionEndpoint.USEast2)) { //get the log entries for the specified log group and log stream var res = await client.GetLogEventsAsync(new GetLogEventsRequest(LOG_GROUP_NAME, LOG_STREAM_NAME)); //return events from Cloudwatch return(res.Events //filter out any that don't match the provided text .Where(r => r.Message.Contains(text)) //convert into LogEntry DTO instances .Select(r => new LogEntry() { TimeStamp = r.Timestamp, Text = r.Message }) //provide a list of the above created LogEntry instances .ToList() ); } }
public async Task <List <string> > GetCloudWatchEventMessagesForLogGroup(string logGroupName, DateTime startTime) { var result = new List <string>(); var stopWatch = new Stopwatch(); try { var client = new AmazonCloudWatchLogsClient(AwsCredentials, Region); var logStreamRequest = new DescribeLogStreamsRequest() { LogGroupName = logGroupName, OrderBy = OrderBy.LastEventTime }; stopWatch.Start(); while (stopWatch.ElapsedMilliseconds < TimeSpan.FromMinutes(1).TotalMilliseconds) { var logStreamsResponse = await client.DescribeLogStreamsAsync(logStreamRequest); // rate limit is 5 per second foreach (var stream in logStreamsResponse.LogStreams) { var logEventsRequest = new GetLogEventsRequest() { LogGroupName = logGroupName, LogStreamName = stream.LogStreamName, StartTime = startTime, }; var logEventsResponse = await client.GetLogEventsAsync(logEventsRequest); // rate limit is 10 per second result.AddRange(logEventsResponse.Events.Select(e => e.Message).ToList()); Thread.Sleep(150); } if (result.Count > 0) { var nrLog = result.Where(l => l.Contains(NRLogIdentifier)); if (nrLog?.Count() > 0) { break; } } Thread.Sleep(250); } } catch (Exception e) { throw e; } stopWatch.Stop(); return(result); }
public void MultiThreadTest() { global::NLog.Logger logger; try { LogManager.Configuration = new XmlLoggingConfiguration("Regular.config"); } catch (FileNotFoundException) { LogManager.Configuration = new XmlLoggingConfiguration("./test/AWS.Logger.NLog.Tests/Regular.config"); } logger = LogManager.GetLogger("loggerMultiThread"); var tasks = new List <Task>(); var streamNames = new List <string>(); var count = 200; var totcount = 0; for (int i = 0; i < 2; i++) { tasks.Add(Task.Factory.StartNew(() => NLogThread(count, logger))); totcount = totcount + count; } Task.WaitAll(tasks.ToArray()); Thread.Sleep(10000); string region = "us-west-2"; string logGroupName = "AWSNLogGroupMultiThreadTest"; AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(totcount, getLogEventsResponse.Events.Count()); }
public void MultiThreadTest() { ILog logger; XmlConfigurator.Configure(new System.IO.FileInfo("log4net.config")); logger = LogManager.GetLogger("MultiThreadTest"); var log = LogManager.GetCurrentLoggers(); var tasks = new List <Task>(); var count = 200; var totcount = 0; for (int i = 0; i < 2; i++) { tasks.Add(Task.Factory.StartNew(() => Log4NetThread(count, logger))); totcount = totcount + count; } Task.WaitAll(tasks.ToArray(), 10000); //Added Sleep to give sufficient time for the log stream to get posted on CloudWatch Thread.Sleep(5000); string region = "us-west-2"; string logGroupName = "AWSLog4NetGroupLog4NetMultiThreadTest"; AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(totcount, getLogEventsResponse.Events.Count()); }
public void MultiThreadTest() { var tasks = new List <Task>(); var streamNames = new List <string>(); ILoggerMultiThreadTestSetup("appsettings.json"); logger = ILoggerTest.LoggerSetup(); var count = 200; var totcount = 0; for (int i = 0; i < 2; i++) { tasks.Add(Task.Factory.StartNew(() => ILoggerThread(count))); totcount = totcount + count; } Task.WaitAll(tasks.ToArray(), 10000); //Sleep is introduced to give suffiecient time for the logstream to get posted on CloudWatchLogs Thread.Sleep(5000); string region = ILoggerTest._configSection.Config.Region; string logGroupName = ILoggerTest._configSection.Config.LogGroup; AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(totcount, getLogEventsResponse.Events.Count()); }
public void Nlog() { try { LogManager.Configuration = new XmlLoggingConfiguration("Regular.config"); } catch (FileNotFoundException) { LogManager.Configuration = new XmlLoggingConfiguration("./test/AWS.Logger.NLog.Tests/Regular.config"); } global::NLog.Logger logger = LogManager.GetLogger("loggerRegular"); for (int i = 0; i < 10; i++) { logger.Debug(string.Format("Test logging message {0} NLog, Thread Id:{1}", i, Thread.CurrentThread.ManagedThreadId)); } string region = "us-west-2"; string logGroupName = "AWSNLogGroup"; Thread.Sleep(10000); AmazonCloudWatchLogsClient client = new AmazonCloudWatchLogsClient( Amazon.RegionEndpoint.GetBySystemName(region)); DescribeLogStreamsResponse describeLogstreamsResponse = client.DescribeLogStreamsAsync(new DescribeLogStreamsRequest { Descending = true, LogGroupName = logGroupName, OrderBy = "LastEventTime" }).Result; GetLogEventsResponse getLogEventsResponse = client.GetLogEventsAsync(new GetLogEventsRequest { LogGroupName = logGroupName, LogStreamName = describeLogstreamsResponse.LogStreams[0].LogStreamName }).Result; Assert.Equal(10, getLogEventsResponse.Events.Count()); }