Esempio n. 1
0
 public TypeAttribute(AppenderDescriptor descriptor)
     : base("Type:", null)
 {
     //Will be overwritten when/if load is called
     Value      = descriptor.TypeNamespace;
     IsReadOnly = true;
 }
Esempio n. 2
0
 private bool AreEqual(AppenderDescriptor descriptor, string name, AppenderType type, string typeNamespace, string elementName)
 {
     return(descriptor.Name == name &&
            descriptor.Type == type &&
            descriptor.TypeNamespace == typeNamespace &&
            descriptor.ElementName == elementName);
 }
 public TypeAttribute(ReadOnlyCollection <IProperty> container, AppenderDescriptor descriptor)
     : base(container, "Type:", null)
 {
     //Will be overwritten when/if load is called
     Value      = descriptor.TypeNamespace;
     IsReadOnly = true;
 }
Esempio n. 4
0
 public AppenderModel(AppenderDescriptor descriptor, XmlNode appender, string name, int incomingReferences)
     : base(descriptor.ElementName, appender)
 {
     Descriptor         = descriptor;
     Name               = name;
     IncomingReferences = incomingReferences;
 }
        private static IElementDefinition CreateAppenderDefinition(AppenderDescriptor appenderDescriptor, IElementConfiguration appenderConfiguration)
        {
            switch (appenderDescriptor.Type)
            {
            case AppenderType.Console:
                return(new ConsoleAppender(appenderConfiguration));

            case AppenderType.File:
                return(new FileAppender(appenderConfiguration));

            case AppenderType.RollingFile:
                return(new RollingFileAppender(appenderConfiguration));

            case AppenderType.EventLog:
                return(new EventLogAppender(appenderConfiguration));

            case AppenderType.Async:
                return(new AsyncAppender(appenderConfiguration));

            case AppenderType.Forwarding:
                return(new ForwardingAppender(appenderConfiguration));

            case AppenderType.ManagedColor:
                return(new ManagedColoredConsoleAppender(appenderConfiguration));

            case AppenderType.Udp:
                return(new UdpAppender(appenderConfiguration));

            case AppenderType.LocalSyslog:
                return(new LocalSyslogAppender(appenderConfiguration));

            case AppenderType.RemoteSyslog:
                return(new RemoteSyslogAppender(appenderConfiguration));

            default:
                throw new InvalidEnumArgumentException(nameof(appenderDescriptor.Type), (int)appenderDescriptor.Type, typeof(AppenderType));
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Attempts to create an <see cref="AppenderModel"/> from the specified <paramref name="appender"/> and <paramref name="log4NetNode"/>.
        /// </summary>
        /// <param name="appender">XML node representing the appender</param>
        /// <param name="log4NetNode">Parent log4net node, used to determine how many incoming references there are to the specified <paramref name="appender"/></param>
        /// <param name="appenderModel">Resulting appender model, if found</param>
        /// <returns></returns>
        public static bool TryCreate(XmlNode appender, XmlNode log4NetNode, out AppenderModel appenderModel)
        {
            string type = appender.Attributes[Log4NetXmlConstants.Type]?.Value;

            if (AppenderDescriptor.TryFindByTypeNamespace(type, out AppenderDescriptor descriptor))
            {
                string name = appender.Attributes[Log4NetXmlConstants.Name]?.Value;
                int    incomingReferences = log4NetNode.SelectNodes($"//appender-ref[@ref='{name}']").Count;

                if (descriptor == AppenderDescriptor.Async)
                {
                    appenderModel = new AsyncAppenderModel(appender, incomingReferences);
                }
                else
                {
                    appenderModel = new AppenderModel(descriptor, appender, incomingReferences);
                }

                return(true);
            }

            appenderModel = null;
            return(false);
        }
Esempio n. 7
0
 public void TryFindByTypeNamespace_ShouldReturnFalse_AndNull_ForInvalidTypeNamespace(string typeNamespace)
 {
     Assert.IsFalse(AppenderDescriptor.TryFindByTypeNamespace(typeNamespace, out AppenderDescriptor descriptor));
     Assert.IsNull(descriptor);
 }
Esempio n. 8
0
 public void EachAppender_ShouldBeFoundByTypeNamespace(string name, AppenderType type, string typeNamespace, string elementName)
 {
     Assert.IsTrue(AppenderDescriptor.TryFindByTypeNamespace(typeNamespace, out AppenderDescriptor appender));
     Assert.IsTrue(AreEqual(appender, name, type, typeNamespace, elementName));
 }
Esempio n. 9
0
        private static IElementDefinition CreateAppenderDefinition(AppenderDescriptor appenderDescriptor, IElementConfiguration appenderConfiguration)
        {
            switch (appenderDescriptor.Type)
            {
            case AppenderType.Console:
                return(new ConsoleAppender(appenderConfiguration));

            case AppenderType.File:
                return(new FileAppender(appenderConfiguration));

            case AppenderType.RollingFile:
                return(new RollingFileAppender(appenderConfiguration));

            case AppenderType.EventLog:
                return(new EventLogAppender(appenderConfiguration));

            case AppenderType.Async:
                return(new AsyncAppender(appenderConfiguration));

            case AppenderType.Forwarding:
                return(new ForwardingAppender(appenderConfiguration));

            case AppenderType.ManagedColor:
                return(new ManagedColoredConsoleAppender(appenderConfiguration));

            case AppenderType.Udp:
                return(new UdpAppender(appenderConfiguration));

            case AppenderType.LocalSyslog:
                return(new LocalSyslogAppender(appenderConfiguration));

            case AppenderType.RemoteSyslog:
                return(new RemoteSyslogAppender(appenderConfiguration));

            case AppenderType.Smtp:
                return(new SmtpAppender(appenderConfiguration));

            case AppenderType.Debug:
                return(new DebugAppender(appenderConfiguration));

            case AppenderType.Trace:
                return(new TraceAppender(appenderConfiguration));

            case AppenderType.Telnet:
                return(new TelnetAppender(appenderConfiguration));

            case AppenderType.Remoting:
                return(new RemotingAppender(appenderConfiguration));

            case AppenderType.OutputDebugString:
                return(new OutputStringDebugAppender(appenderConfiguration));

            case AppenderType.NetSend:
                return(new NetSendAppender(appenderConfiguration));

            case AppenderType.Memory:
                return(new MemoryAppender(appenderConfiguration));

            case AppenderType.BufferingForwarding:
                return(new BufferingForwardingAppender(appenderConfiguration));

            case AppenderType.AspNetTrace:
                return(new AspNetTraceAppender(appenderConfiguration));

            case AppenderType.SmtpPickupDir:
                return(new SmtpPickupDirAppender(appenderConfiguration));

            case AppenderType.TextWriter:
                return(new TextWriterAppender(appenderConfiguration));

            case AppenderType.AwsAppender:
                return(new AwsAppender(appenderConfiguration));

            default:
                throw new InvalidEnumArgumentException(nameof(appenderDescriptor.Type), (int)appenderDescriptor.Type, typeof(AppenderType));
            }
        }
Esempio n. 10
0
 public AppenderModel(AppenderDescriptor descriptor, XmlNode node, int incomingReferences)
     : base(node, descriptor)
 {
     IncomingReferences = incomingReferences;
 }