예제 #1
0
        public override void ActivateOptions()
        {
            LogLog.Debug(typeof(HtmlSmtpAppender), "HTML SMTP Appender options activated");
            base.ActivateOptions();
            _queue = (EventBacklog > 0)
                ? new BlockingCollection <LoggingEvent>(EventBacklog)
                : new BlockingCollection <LoggingEvent>();

            if (Layout == null)
            {
                var layout = MakeLayout();
                layout.ActivateOptions();
                Layout = layout;
            }
            if (MaximumEventsPerMessage <= 1)
            {
                MaximumEventsPerMessage = 1024;
            }
            if (HolddownPeriod.Ticks <= 0)
            {
                HolddownPeriod = new TimeSpan(0, 15, 0);
            }
            if (Trigger == null)
            {
                Trigger = new LevelEvaluator(Level.Warn);
            }
            if (Subject == null)
            {
                Subject = "Log4net";
            }
            if (string.IsNullOrEmpty(From))
            {
                From = string.Format("log4net <htmlsmtpappender@{0}>", System.Net.Dns.GetHostName());
            }
            if (string.IsNullOrEmpty(Transport))
            {
                Transport = SmtpClientFactory.MakeDefaultTransport();
            }
            if (Fix == FixFlags.None)
            {
                Fix = FixFlags.Partial | FixFlags.Ndc;
            }

            _worker.Start();
        }
예제 #2
0
 public MyBufferedAppender(ITriggeringEventEvaluator evaluator)
 {
     this.Evaluator = evaluator;
 }