Message transmission configuration
 public AsyncLogger(Layout loggingLayout, EnforcementConfig enforcementConfig, MessageBuilder messageBuilder, MessageTransmitterConfig messageTransmitterConfig)
 {
     layout = loggingLayout;
     cts = new CancellationTokenSource();
     token = cts.Token;
     throttling = Throttling.FromConfig(enforcementConfig.Throttling);
     queue = NewBlockingCollection();
     buffer = new ByteArray(enforcementConfig.TruncateMessageTo);
     messageTransmitter = MessageTransmitter.FromConfig(messageTransmitterConfig);
     Task.Factory.StartNew(() => ProcessQueueAsync(messageBuilder));
 }
 /// <summary>Builds a new instance of the SyslogTarget class</summary>
 public SyslogTarget()
 {
     Enforcement = new EnforcementConfig();
     MessageCreation = new MessageBuilderConfig();
     MessageSend = new MessageTransmitterConfig();
 }
 public static MessageTransmitter FromConfig(MessageTransmitterConfig messageTransmitterConfig)
 {
     return TransmitterFactory[messageTransmitterConfig.Protocol](messageTransmitterConfig);
 }