Esempio n. 1
0
        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));
                    }
            }
        }
Esempio n. 2
0
        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();
        }