Inheritance: Target, IConfigurable, IDisposable
示例#1
0
        public void Configure(XElement xml)
        {
            var template = new FileTarget(); // used for default values

            KeepFileOpen =
                Attempt.Get(() => bool.Parse(xml.GetAttributeValue("KeepFileOpen", "KeepOpen")), template.KeepFileOpen)
                    .Value;

            Path = xml.GetAttributeValue("path", "file", "folder", "dir", "directory", "filepath");

            ArchiveCount =
                Attempt.Get(() => int.Parse(xml.GetAttributeValue("archivecount")), template.ArchiveCount).Value;

            EntryFormatter =
                ConstructOrDefault<IEntryConverter<string>>(xml.GetAttributeValue("entryformatter", "formatter"));

            Interval = Attempt.Get(() => LoggingInterval.Parse(xml.GetAttributeValue("interval"))).Value;
        }
        public void LogToFileInDirectory()
        {
            var fileTarget = new FileTarget { Path = @"C:\Users\roverby\Desktop\mylogz.xxx\" };
            var mgr = new LogManager(new[] { fileTarget });
            mgr.UnhandledLoggingException += (sender, args) => { throw args.Exception; };
            var log = mgr.GetLoggerForCallingType();

            for (var i = 0; i < 10000; i++)
            {
                log.Info("test");
                log.Warn("YIKE!");
            }

            mgr.Dispose();
        }
        public void LogToFilesInterval()
        {
            var fileTarget = new FileTarget();
            var mgr = new LogManager(new[] { fileTarget });

            fileTarget.Configure(XElement.Parse(@"<target path=""C:\Users\roverby\Desktop\logtest"" interval=""5 second"" archivecount=""3"" />"));

            Assert.AreEqual(3, fileTarget.ArchiveCount);
            Assert.AreEqual(TimeSpan.FromSeconds(5), fileTarget.Interval.Duration);

            mgr.UnhandledLoggingException += (sender, args) => { throw args.Exception; };
            var log = mgr.GetLoggerForCallingType();
            for (var i = 0; i < 1000 * 1000; i++)
            {
                log.Info("test");
                log.Warn("YIKE!");
            }

            mgr.Dispose();
        }
        public void LogToFile()
        {
            var fileTarget = new FileTarget
            {
                Path = @"C:\Users\roverby\Desktop\log.test.txt",
                //Interval= LoggingInterval.Parse("5 second"),
                //ArchiveCount= 3,
                KeepFileOpen = true

            };
            var mgr = new LogManager(new[] { fileTarget });
            mgr.UnhandledLoggingException += (sender, args) => { throw args.Exception; };
            var log = mgr.GetLoggerForCallingType();

            for (var i = 0; i < 10000; i++)
            {
                log.Info("test");
                log.Warn("YIKE!");
            }

            mgr.Dispose();
        }