Exemplo n.º 1
0
        public void DumpTest()
        {
            var folder     = Executable.Relative("Exceptions");
            var folderInfo = new DirectoryInfo(folder);

            if (Directory.Exists(folder))
            {
                Directory.Delete(folder, true);
            }
            //returns true sometimes when opened on Explorer
            while (Directory.Exists(folder))
            {
                Thread.Yield();
            }
            Assert.IsFalse(Directory.Exists(folder));

            Thrower.Dump(new Exception("Exception at DumpTest!", new Exception("Inner")));
            Assert.IsTrue(Directory.Exists(folder));
            var files = Directory.GetFiles(folder);

            Assert.AreEqual(1, files.Length);
            var file = Path.GetFileName(files[0]);

            Assert.IsTrue(file.StartsWith("exception-"));
            Assert.IsTrue(file.EndsWith(".txt"));
            var regex = new Regex(@"exception-\d{8}_\d{6}_\d{3}\.txt");

            Assert.IsTrue(regex.IsMatch(file));
            var lines = File.ReadAllLines(files[0]);

            Assert.IsTrue(lines.Length > 0);
            Assert.AreEqual("System.Exception: Exception at DumpTest! ---> System.Exception: Inner", lines[0]);
        }
Exemplo n.º 2
0
        public void Log(Log log)
        {
            formatter.Format(log);

            runner.Run(() =>
            {
                foreach (var appender in appenders)
                {
                    Catcher.Try(() => appender(log), (ex) =>
                    {
                        removes.Add(appender);
                        Thrower.Dump(ex);
                    });
                }
                //autoremove excepting appenders
                foreach (var appender in removes)
                {
                    appenders.Remove(appender);
                }
                removes.Clear();
            });
        }