public TypeAttribute(AppenderDescriptor descriptor) : base("Type:", null) { //Will be overwritten when/if load is called Value = descriptor.TypeNamespace; IsReadOnly = true; }
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; }
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)); } }
/// <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); }
public void TryFindByTypeNamespace_ShouldReturnFalse_AndNull_ForInvalidTypeNamespace(string typeNamespace) { Assert.IsFalse(AppenderDescriptor.TryFindByTypeNamespace(typeNamespace, out AppenderDescriptor descriptor)); Assert.IsNull(descriptor); }
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)); }
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)); } }
public AppenderModel(AppenderDescriptor descriptor, XmlNode node, int incomingReferences) : base(node, descriptor) { IncomingReferences = incomingReferences; }