private bool TryRead(LogEventReader reader, out LogEvent evt) { try { return(reader.TryRead(out evt)); } catch (JsonReaderException ex) { // As we are reading/streaming one line at a time in the JSON file // Thus we can not report the line number, as it will always be 1 _logger.Error <JsonLogViewer>(ex, "Unable to parse a line in the JSON log file"); evt = null; return(true); } }
public void AllEventsAreRead() { var all = new List <LogEvent>(); using (var clef = File.OpenText("LogEventReaderTests.clef")) { var reader = new LogEventReader(clef); LogEvent evt; while (reader.TryRead(out evt)) { all.Add(evt); } } Assert.Equal(5, all.Count); }
public IActionResult GetSystemLog() { List <LogEvent> logs = new List <LogEvent>(); // configure strongly typed settings objects var logPath = Configuration.GetSection("AppSettings").Get <AppSettings>().LogPath; DirectoryInfo di = new DirectoryInfo(logPath); di = di.Parent; DateTime now = DateTime.Now; var patternYesterday = $"log-{now.AddDays(-1).ToString("yyyyMMdd")}*.log"; var patternToday = $"log-{now.ToString("yyyyMMdd")}*.log"; //get log files and sort var yesterdayLogs = di.GetFiles(patternYesterday).ToList(); var todayLogs = di.GetFiles(patternToday).ToList(); yesterdayLogs = yesterdayLogs.OrderBy(o => o.CreationTime).ToList(); todayLogs = todayLogs.OrderBy(o => o.CreationTime).ToList(); List <FileInfo> logfiles = new List <FileInfo>(); logfiles.AddRange(yesterdayLogs); logfiles.AddRange(todayLogs); string result = string.Empty; foreach (var fi in logfiles) { using (var clef = System.IO.File.Open(fi.FullName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { TextReader tr = new StreamReader(clef); var reader = new LogEventReader(tr); LogEvent evt; while (reader.TryRead(out evt)) { logs.Add(evt); } } } logs.Reverse(); return(Ok(new { Logs = logs })); }
public IEnumerable <LogEvent> GetAllLogs() { var logs = new List <LogEvent>(); using (var fs = new FileStream(Constants.LOG_PATH, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (var sr = new StreamReader(fs)) { var reader = new LogEventReader(sr); LogEvent evt; while (reader.TryRead(out evt)) { if (evt.Properties.ContainsKey("TaskId")) { logs.Add(evt); } } } } return(logs); }
public static void Main(string[] args) { using (var fileLog = new LoggerConfiguration() .WriteTo.File(new CompactJsonFormatter(), "log.clef") .CreateLogger()) { fileLog.Information("Hello, {@User}", new { Name = "nblumhardt", Id = 101 }); fileLog.Information("Number {N:x8}", 42); fileLog.Warning("Tags are {Tags}", new[] { "test", "orange" }); try { throw new DivideByZeroException(); } catch (Exception ex) { fileLog.Error(ex, "Something failed"); } } using (var console = new LoggerConfiguration() .WriteTo.LiterateConsole() .CreateLogger()) { using (var clef = File.OpenText("log.clef")) { var reader = new LogEventReader(clef); LogEvent evt; while (reader.TryRead(out evt)) { console.Write(evt); } } } File.Delete("log.clef"); }