Esempio n. 1
0
        private List <OutputLogEvent> FunctionLogs(string functionName, DateTime start, DateTime end)
        {
            if (_logs == null)
            {
                using (var cwClient = new AmazonCloudWatchLogsClient())
                {
                    var logStreams = new List <LogStream>();
                    DescribeLogStreamsResponse lResponse;
                    string nextToken = null;
                    do
                    {
                        lResponse =
                            cwClient.DescribeLogStreams(new DescribeLogStreamsRequest("/aws/lambda/" + functionName)
                        {
                            NextToken = nextToken
                        });
                        logStreams.AddRange(lResponse.LogStreams);
                    } while (!string.IsNullOrEmpty(nextToken = lResponse.NextToken));
                    List <OutputLogEvent> logs = new List <OutputLogEvent>();
                    logStreams.ForEach(
                        s =>
                        cwClient.GetLogEvents(new GetLogEventsRequest("/aws/lambda/" + functionName,
                                                                      s.LogStreamName)
                    {
                        Limit = 10000
                    }).Events.ForEach(e => logs.Add(e)));
                    _logs = logs;
                }
            }

            return(_logs);
        }
Esempio n. 2
0
        /// <summary>
        /// Get and write logs to chosen file, This is not at right way to do it, but every task, thread, async/await either lock the GUI or is not working.
        /// </summary>
        /// <param name="awsLogGroupName"></param>
        /// <param name="awsLogStreamName"></param>
        /// <param name="fromdays"></param>
        /// <param name="todays"></param>
        public List <GetLogEventsResponse> GetLogsFrom(string awsLogGroupName, DescribeLogStreamsResponse awsLogStreamName, double fromdays, double todays)
        {
            List <GetLogEventsResponse> Logs = new List <GetLogEventsResponse>();

            foreach (var item in awsLogStreamName.LogStreams)
            {
                awsGetLogsEvent = new GetLogEventsRequest();
                awsGetLogsEvent.LogGroupName  = awsLogGroupName;
                awsGetLogsEvent.LogStreamName = item.LogStreamName;
                awsGetLogsEvent.StartTime     = DateTime.Today.AddDays(fromdays);
                awsGetLogsEvent.EndTime       = DateTime.Today.AddDays(todays + 1);
                Logs.Add(awsCloudwatchClient.GetLogEvents(awsGetLogsEvent));
            }

            return(Logs);
        }