public override void ExecuteCommand()

in Source/NuGetGallery.Operations/Tasks/Monitoring/TailJobLogTask.cs [34:67]


        public override void ExecuteCommand()
        {
            var jobName = Arguments[0];

            // Start by fetching the latest log
            var joblogs = JobLog.LoadJobLogs(StorageAccount);

            // Grab the log
            var candidates = joblogs.Where(l => l.JobName.StartsWith(jobName, StringComparison.OrdinalIgnoreCase)).ToList();
            if (!candidates.Any())
            {
                Log.Error("No logs match: {0}", jobName);
            }
            else if (candidates.Count > 1)
            {
                Log.Error("Multiple logs match: {0}. Found: {1}", jobName, String.Join(", ", candidates.Select(c => c.JobName)));
            }
            else
            {
                // Grab the requested entries
                var log = candidates.Single();
                var entries = log.OrderedEntries().Take(NumberOfEntries.Value).Reverse();
                foreach (var entry in entries)
                {
                    WriteEntry(log, entry);
                    _lastEntryUtc = entry.Timestamp;
                }

                if (Follow)
                {
                    FollowLog(log);
                }
            }
        }