コード例 #1
0
        protected override async Task DoFlushAsync(LogWriteContext context, IEnumerable <LogEventInfo> toFlush)
        {
#if REF_ASSM
            await Task.Delay(0);

            throw new InvalidOperationException("Cannot use ref assm at runtime");
#else
            // create a json object...

            var env     = new LoggingEnvironment();
            var wrapper = new JsonPostWrapper(env, toFlush);
            var json    = wrapper.ToJson();

            // send...
            var client  = new HttpClient();
            var content = new StringContent(json);
            content.Headers.ContentType.MediaType = "text/json";

            // call...
            OnBeforePost(new HttpClientEventArgs(client));

            // send...
            await client.PostAsync(Url, content);
#endif
        }
コード例 #2
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var env = new LoggingEnvironment();

            // walk...
            string prop = null;

            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.PropertyName)
                {
                    prop = Convert.ToString(reader.Value);
                }
                else if (reader.TokenType == JsonToken.EndObject)
                {
                    break;
                }

                // set...
                env.Values[prop] = reader.Value;
            }

            // return...
            return(env);
        }
コード例 #3
0
ファイル: JsonPostTarget.cs プロジェクト: onovotny/MetroLog
        protected override async Task DoFlushAsync(LogWriteContext context, IEnumerable<LogEventInfo> toFlush)
        {
#if REF_ASSM
            await Task.Delay(0);
            throw new InvalidOperationException("Cannot use ref assm at runtime");
#else
            // create a json object...

            var env = new LoggingEnvironment();
            var wrapper = new JsonPostWrapper(env, toFlush);
            var json = wrapper.ToJson();

            // send...
            var client = new HttpClient();
            var content = new StringContent(json);
            content.Headers.ContentType.MediaType = "text/json";

            // call...
            OnBeforePost(new HttpClientEventArgs(client));

            // send...
            await client.PostAsync(Url, content);
#endif
        }