Example #1
0
        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);
        }
Example #3
0
        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 }));
        }
Example #4
0
        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);
        }
Example #5
0
        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");
        }