private void StartHttpServer() { var endpointStr = XDocument.Load(_configFile.FullName) .Descendants() .Elements() .Single(e => e.Attributes().Any(a => a.Name == "name" && a.Value == "HTTPAppender")) .Elements("endpoint") .Single() .Attribute("value")?.Value; _listener = new EasyLogListener( new Uri(endpointStr ?? throw new InvalidOperationException()), Deserializer); _listener.OnError += (sender, exception) => throw exception; _listener.OnPayload += (sender, payload) => _receivedPayloads.Enqueue(payload); _listener.ListenAsync(); LogPayload Deserializer(Stream stream) { var serializer = new JsonSerializer { ContractResolver = new CamelCasePropertyNamesContractResolver(), DateFormatHandling = DateFormatHandling.IsoDateFormat, DateTimeZoneHandling = DateTimeZoneHandling.Utc, Formatting = Formatting.None }; using (var sr = new StreamReader(stream, Encoding.UTF8)) using (var jsonTextReader = new JsonTextReader(sr)) { return(serializer.Deserialize <LogPayload>(jsonTextReader)); } } }
private void StartHttpServer() { var endpointStr = XDocument.Load(_configFile.FullName) .Descendants() .Elements() .Single(e => e.Attributes().Any(a => a.Name == "name" && a.Value == "HTTPAppender")) .Elements("endpoint") .Single() .Attribute("value")?.Value; _listener = new EasyLogListener(new Uri(endpointStr ?? throw new InvalidOperationException())); _listener.OnError += (sender, exception) => throw exception; _listener.OnPayload += (sender, payload) => _receivedPayloads.Enqueue(payload); _listener.Start(); }