コード例 #1
0
        public void SetUp()
        {
            mXmlDoc = new XmlDocument();
            mXmlDoc.LoadXml("<log4net>\n" +
                            $"  <appender name=\"appender0\" type=\"{AppenderDescriptor.Console.TypeNamespace}\">\n" +
                            "    <appender-ref ref=\"appender1\" />\n" +
                            "    <appender-ref ref=\"appender2\" />\n" +
                            "  </appender>\n" +
                            $"  <appender name=\"appender1\" type=\"{AppenderDescriptor.Console.TypeNamespace}\">\n" +
                            "    <appender-ref ref=\"appender2\" />\n" +
                            "  </appender>\n" +
                            $"  <appender name=\"appender2\" type=\"{AppenderDescriptor.Console.TypeNamespace}\">\n" +
                            "  </appender>\n" +
                            $"  <appender name=\"appender3\" type=\"{AppenderDescriptor.Console.TypeNamespace}\">\n" +
                            "  </appender>\n" +
                            $"  <appender name=\"asyncAppender\" type=\"{AppenderDescriptor.Async.TypeNamespace}\">\n" +
                            "  </appender>\n" +
                            "  <root>\n" +
                            "  </root>\n" +
                            "</log4net>");

            IElementConfiguration appenderConfiguration = Substitute.For <IElementConfiguration>();

            appenderConfiguration.ConfigXml.Returns(mXmlDoc);
            appenderConfiguration.Log4NetNode.Returns(mXmlDoc.FirstChild);
            appenderConfiguration.OriginalNode.Returns(mXmlDoc.FirstChild["appender"]);

            mSut = new OutgoingRefs(appenderConfiguration);
        }
コード例 #2
0
 internal RollingFileAppender(IElementConfiguration configuration)
     : base(configuration)
 {
     mDatePattern = new DatePattern(Properties);
     mMaximumFileSize = new MaximumFileSize(Properties);
     mCountDirection = new CountDirection(Properties);
 }
コード例 #3
0
        public void Load_ShouldNotLoadAppender_WithNoName()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "</log4net>";

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);

            Assert.AreEqual(0, mSut.RefsCollection.Count);
        }
コード例 #4
0
        public static IElementDefinition Create(DescriptorBase descriptor, IElementConfiguration configuration)
        {
            switch (descriptor)
            {
            case AppenderDescriptor appenderDescriptor:
                return(CreateAppenderDefinition(appenderDescriptor, configuration));

            case FilterDescriptor filterDescriptor:
                return(CreateFilterDefinition(filterDescriptor));

            case LoggerDescriptor loggerDescriptor:
                return(CreateLoggerDefinition(loggerDescriptor, configuration));

            case MappingDescriptor mappingDescriptor:
                return(new MappingDefinition());

            case RendererDescriptor rendererDescriptor:
                return(new RendererDefinition());

            case ParamDescriptor paramDescriptor:
                return(new ParamDefinition(configuration));

            default:
                throw new ArgumentException($"Property definitions do not exist for {descriptor.GetType().Name}");
            }
        }
コード例 #5
0
 public OutgoingRefs(ReadOnlyCollection <IProperty> container, IElementConfiguration appenderConfiguration)
     : base(container, "↑ Refs:", "This element can reference the following appenders:")
 {
     mConfiguration = appenderConfiguration;
     RefsCollection = new ObservableCollection <AppenderModel>();
     LoadPossibleReferences();
 }
コード例 #6
0
 public OutgoingRefs(IElementConfiguration appenderConfiguration)
     : base("↑ Refs:", "This element can reference the following appenders:")
 {
     mConfiguration = appenderConfiguration;
     RefsCollection = new ObservableCollection <AppenderModel>();
     LoadPossibleReferences();
 }
コード例 #7
0
        public void SetUp()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"asyncAppender\" type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "  <root>\n" +
                               "    <appender-ref ref=\"asyncAppender\" />\n" +
                               "  </root>\n" +
                               "</log4net>";

            mXmlDoc = new XmlDocument();

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);
            mNameProperty.Load(appenderConfiguration.OriginalNode);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);
        }
コード例 #8
0
        public void Load_ShouldNotLoadRoot_WhenNonexistent()
        {
            const string xml = "<log4net>\n" +
                               "  <appender name=\"appender0\">\n" +
                               "    <appender-ref ref=\"appender1\" />\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender1\">\n" +
                               "    <appender-ref ref=\"appender2\" />\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender2\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"appender3\">\n" +
                               "  </appender>\n" +
                               "  <appender name=\"asyncAppender\" type=\"Log4Net.Async.AsyncForwardingAppender,Log4Net.Async\">\n" +
                               "    <appender-ref ref=\"appender0\" />\n" +
                               "  </appender>\n" +
                               "</log4net>";

            ReadOnlyCollection <IProperty> properties            = new ReadOnlyCollection <IProperty>(new List <IProperty>());
            IElementConfiguration          appenderConfiguration = GetAppenderConfiguration(mXmlDoc, xml);

            mNameProperty = new Name(appenderConfiguration);

            mSut = new IncomingRefs(mNameProperty, appenderConfiguration);

            Assert.AreEqual(1, mSut.RefsCollection.Count);
            Assert.IsTrue(mSut.RefsCollection.All(r => !r.IsEnabled)); //Locations aren't enabled until a load is done with this appender's name
            Assert.IsTrue(mSut.RefsCollection.All(r => r.Node.Name != "root"));
        }
コード例 #9
0
 public IncomingRefs(ReadOnlyCollection <IProperty> container, Name nameProperty, IElementConfiguration appenderConfiguration)
     : base(container, "↓ Refs:", "This appender can be referenced in the following elements:")
 {
     mNameProperty          = nameProperty;
     mAppenderConfiguration = appenderConfiguration;
     RefsCollection         = new ObservableCollection <IAcceptAppenderRef>();
     LoadAvailableLocations();
 }
コード例 #10
0
ファイル: CioConfiguration.cs プロジェクト: RobinKu/Cio
        public CioConfiguration(IElementConfiguration elementConfig)
        {
            if (elementConfig == null)
            {
                throw new ArgumentNullException("elementConfig");
            }

            this.Elements = elementConfig;
        }
コード例 #11
0
        public void CreateElementConfigurationFor_ShouldCreateElementConfigWithCorrectProperties_WhenModelIsNull()
        {
            mSut.Load();

            IElementConfiguration elementConfiguration = mSut.CreateElementConfigurationFor(null, AppenderDescriptor.Async.ElementName);

            Assert.IsNull(elementConfiguration.OriginalNode);
            Assert.AreEqual(AppenderDescriptor.Async.ElementName, elementConfiguration.NewNode.Name);
            Assert.AreSame(mSut.ConfigXml, elementConfiguration.ConfigXml);
            Assert.AreSame(mSut.Log4NetNode, elementConfiguration.Log4NetNode);
        }
コード例 #12
0
        public void SetUp()
        {
            XmlDocument xmlDoc      = new XmlDocument();
            XmlElement  log4NetNode = xmlDoc.CreateElement(Log4NetXmlConstants.Log4Net);

            IElementConfiguration configuration = Substitute.For <IElementConfiguration>();

            configuration.ConfigXml.Returns(xmlDoc);
            configuration.Log4NetNode.Returns(log4NetNode);

            mSut = new ConsoleAppender(configuration);
        }
コード例 #13
0
        public void CreateElementConfigurationFor_ShouldCreateElementConfigWithCorrectProperties()
        {
            mSut.Load();

            AsyncAppenderModel    originalModel        = mSut.Children.OfType <AsyncAppenderModel>().First();
            IElementConfiguration elementConfiguration = mSut.CreateElementConfigurationFor(originalModel, AppenderDescriptor.Async.ElementName);

            Assert.AreSame(originalModel.Node, elementConfiguration.OriginalNode);
            Assert.AreEqual(AppenderDescriptor.Async.ElementName, elementConfiguration.NewNode.Name);
            Assert.AreSame(mSut.ConfigXml, elementConfiguration.ConfigXml);
            Assert.AreSame(mSut.Log4NetNode, elementConfiguration.Log4NetNode);
        }
コード例 #14
0
        public void SetUp()
        {
            XmlDocument xmlDoc      = new XmlDocument();
            XmlElement  log4NetNode = xmlDoc.CreateElement("log4net");

            IElementConfiguration configuration = Substitute.For <IElementConfiguration>();

            configuration.ConfigXml.Returns(xmlDoc);
            configuration.Log4NetNode.Returns(log4NetNode);

            mSut = new LocalSyslogAppender(configuration);
        }
コード例 #15
0
 internal RollingFileAppender(IElementConfiguration configuration)
     : base(configuration)
 {
     mDatePattern      = new DatePattern();
     mMaximumFileSize  = new MaximumFileSize();
     mCountDirection   = new CountDirection();
     mDateTimeStrategy = new StringValueProperty("Date Time Strategy:", "dateTimeStrategy", Log4NetXmlConstants.Type)
     {
         ToolTip = "Sets the strategy for determining the current date and time.\n" +
                   "The default implementation is to use LocalDateTime (log4net.Appender.RollingFileAppender+LocalDateTime,log4net) which internally calls through to DateTime.Now.\n" +
                   "DateTime.UtcNow may be used on frameworks newer than .NET 1.0 by specifying UniversalDateTime (log4net.Appender.RollingFileAppender+UniversalDateTime,log4net).\n" +
                   "A custom implementation that implements IDateTime can be specified here as well. Leave blank to use LocalDateTime."
     };
 }
コード例 #16
0
        public void SetUp()
        {
            mXmlDoc           = new XmlDocument();
            mLog4NetNode      = mXmlDoc.CreateElement("log4net");
            mOriginalAppender = mXmlDoc.CreateElementWithAttribute("appender", "name", OriginalName);
            mOriginalAppender.AppendTo(mLog4NetNode);

            mAppenderConfiguration = Substitute.For <IElementConfiguration>();
            mAppenderConfiguration.ConfigXml.Returns(mXmlDoc);
            mAppenderConfiguration.Log4NetNode.Returns(mLog4NetNode);
            mAppenderConfiguration.OriginalNode.Returns(mOriginalAppender);

            mSut = new Name(new ReadOnlyCollection <IProperty>(new List <IProperty>()), mAppenderConfiguration);
        }
コード例 #17
0
        public void Execute_ShouldAppend_WhenOriginalNodeIsNull()
        {
            XmlDocument xmlDoc         = new XmlDocument();
            XmlElement  log4NetElement = xmlDoc.CreateElement(Log4NetXmlConstants.Log4Net);
            XmlElement  newElement     = xmlDoc.CreateElement("appender");

            IElementConfiguration config = Substitute.For <IElementConfiguration>();

            config.Log4NetNode.Returns(log4NetElement);
            config.NewNode.Returns(newElement);

            ISaveStrategy strategy = new AppendReplaceSaveStrategy(config, false);

            strategy.Execute();

            Assert.AreEqual(newElement, log4NetElement.FirstChild);
        }
コード例 #18
0
        public ElementWindow(IElementConfiguration appenderConfiguration,
                             IElementDefinition propertyDefinition,
                             IWindowSizeLocation windowSizeLocation,
                             ISaveStrategy saveStrategy)
            : base(windowSizeLocation.RetentionKey)
        {
            InitializeComponent();
            DataContext        = this;
            mMessageBoxService = new MessageBoxService(this);

            mConfiguration = appenderConfiguration;
            mSaveStrategy  = saveStrategy;
            SetWindowSizeLocation(windowSizeLocation);
            PropertyDefinition = propertyDefinition;
            PropertyDefinition.MessageBoxService = mMessageBoxService;
            Loaded += WindowOnLoaded;
            Icon    = new BitmapImage(new Uri(PropertyDefinition.Icon));
        }
コード例 #19
0
        public ElementWindow(IElementConfiguration appenderConfiguration,
                             IElementDefinition propertyDefinition,
                             IWindowSizeLocation windowSizeLocation,
                             ISaveStrategy saveStrategy)
            : base(windowSizeLocation.RetentionKey)
        {
            InitializeComponent();
            DataContext        = this;
            mMessageBoxService = new MessageBoxService(this);

            mConfiguration     = appenderConfiguration;
            WindowSizeLocation = windowSizeLocation;
            mSaveStrategy      = saveStrategy;
            SetWindowSizeLocation(windowSizeLocation);
            PropertyDefinition = propertyDefinition;
            PropertyDefinition.MessageBoxService = mMessageBoxService;
            Properties = new ObservableCollection <IProperty>();
            Loaded    += WindowOnLoaded;
            ((INotifyCollectionChanged)PropertyDefinition.Properties).CollectionChanged += PropertiesOnCollectionChanged;
            Icon = new BitmapImage(new Uri(PropertyDefinition.Icon));
        }
コード例 #20
0
        public void Execute_ShouldAppend_WhenOriginalNodeIsNotNull_AndForceAppendIsTrue()
        {
            XmlDocument xmlDoc         = new XmlDocument();
            XmlElement  log4NetElement = xmlDoc.CreateElement(Log4NetXmlConstants.Log4Net);
            XmlElement  origElement    = xmlDoc.CreateElement("origAppender");
            XmlElement  newElement     = xmlDoc.CreateElement("newAppender");

            IElementConfiguration config = Substitute.For <IElementConfiguration>();

            config.Log4NetNode.Returns(log4NetElement);
            config.OriginalNode.Returns(origElement);
            config.NewNode.Returns(newElement);

            //Sanity check
            Assert.AreEqual(0, log4NetElement.ChildNodes.Count);

            ISaveStrategy strategy = new AppendReplaceSaveStrategy(config, true);

            strategy.Execute();

            Assert.AreEqual(1, log4NetElement.ChildNodes.Count);
            Assert.AreEqual(newElement, log4NetElement.FirstChild);
        }
コード例 #21
0
 internal UdpAppender(IElementConfiguration configuration)
     : base(configuration)
 {
 }
コード例 #22
0
 public AspNetTraceAppender(IElementConfiguration configuration)
     : base(configuration)
 {
 }
コード例 #23
0
 public MemoryAppender(IElementConfiguration configuration)
     : base(configuration, false)
 {
 }
コード例 #24
0
 public OutputStringDebugAppender(IElementConfiguration configuration)
     : base(configuration)
 {
 }
コード例 #25
0
 public EventLogAppender(IElementConfiguration appenderConfiguration)
     : base(appenderConfiguration)
 {
 }
コード例 #26
0
 public RootLogger(IElementConfiguration appenderConfiguration)
 {
     mAppenderConfiguration = appenderConfiguration;
 }
コード例 #27
0
 public AwsAppender(IElementConfiguration configuration, bool requiresLayout = true)
     : base(configuration, requiresLayout)
 {
 }
コード例 #28
0
 public Name(IElementConfiguration configuration)
     : base("Name:", Log4NetXmlConstants.Name)
 {
     mConfiguration = configuration;
     IsFocused      = true;
 }
コード例 #29
0
 internal RemoteSyslogAppender(IElementConfiguration configuration)
     : base(configuration)
 {
 }
コード例 #30
0
 internal ForwardingAppender(IElementConfiguration appenderConfiguration)
     : base(appenderConfiguration, false)
 {
 }
コード例 #31
0
 internal SmtpPickupDirAppender(IElementConfiguration configuration)
     : base(configuration, true)
 {
 }