Skip to main content

C#

Create a log stream

First, we'll need to create a log stream. This is a one time operation, and we recommend storing log entries with same schema in a single log stream. So, for example, you can use one log stream per application (given that all logs from that application have the same schema).

Console.WriteLine("Create logstream!");var client = new HttpClient();var logstream_name = "teststream";var request = new HttpRequestMessage(HttpMethod.Put, String.Concat("http://localhost:8000/api/v1/logstream/", logstream_name));request.Headers.Add("Authorization", "Basic YWRtaW46YWRtaW4=");var response = await client.SendAsync(request);response.EnsureSuccessStatusCode();Console.WriteLine(await response.Content.ReadAsStringAsync());

Send logs to the log stream

After log stream is created, you can start sending logs to the log stream using HTTP POST requests.

Console.WriteLine("Ingest a log event to the created logstream!");request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:8000/api/v1/ingest");request.Headers.Add("Authorization", "Basic YWRtaW46YWRtaW4=");request.Headers.Add("X-P-Stream", logstream_name);var content = new StringContent("{\"source_time\":\"2024-03-27T10:29:00.434Z\",\"level\":\"info\",\"message\":\"Application is failing\",\"version\":\"1.2.0\",\"user_id\":13912,\"device_id\":4138,\"session_id\":\"abc\",\"os\":\"Windows\",\"host\":\"112.168.1.110\",\"location\":\"ngeuprqhynuvpxgp\",\"request_body\":\"rnkmffyawtdcindtrdqruyxbndbjpfsptzpwtujbmkwcqastmxwbvjwphmyvpnhordwljnodxhtvpjesjldtifswqbpyuhlcytmm\",\"status_code\":300,\"app_meta\":\"ckgpibhmlusqqfunnpxbfxbc\", \"new_field_added_by\":\"ingester 8020\"}", null, "application/json");request.Content = content;response = await client.SendAsync(request);response.EnsureSuccessStatusCode();Console.WriteLine(await response.Content.ReadAsStringAsync());Console.WriteLine("Log event ingested successfully!");

Querying a log stream

Once you have started sending logs to a log stream, you can query the logs using standard SQL.

Console.WriteLine("Query the logstream!");request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:8000/api/v1/query");request.Headers.Add("Authorization", "Basic YWRtaW46YWRtaW4=");content = new StringContent("{\n    \"query\": \"SELECT * from teststream\",\n    \"startTime\": \"2024-03-27T00:00:00.000Z\",\n    \"endTime\": \"2024-03-28T23:59:00.000Z\"\n}\n", null, "application/json");request.Content = content;response = await client.SendAsync(request);response.EnsureSuccessStatusCode();Console.WriteLine(await response.Content.ReadAsStringAsync());

Get Updates from Parseable

Subscribe to keep up with latest news, updates and new features on Parseable