From a99026ee02d757186444286f7ac3d71a549a8da7 Mon Sep 17 00:00:00 2001 From: abdulrahman fikry Date: Tue, 7 Oct 2025 00:18:35 +0300 Subject: [PATCH] errorHandling --- Controllers/WondersController.cs | 258 +++++++++++++++++------------- Logs/app-log2025100720251007.json | 77 +++++++++ 2 files changed, 227 insertions(+), 108 deletions(-) create mode 100644 Logs/app-log2025100720251007.json diff --git a/Controllers/WondersController.cs b/Controllers/WondersController.cs index 97ee6a1..3dc1c23 100644 --- a/Controllers/WondersController.cs +++ b/Controllers/WondersController.cs @@ -6,9 +6,6 @@ using WondersAPI.Models; namespace Ghaymah.WondersAPI.Controllers { - /// - /// API controller to manage Wonders (CRUD + Random). - /// [ApiController] [Route("api/[controller]")] public class WondersController : ControllerBase @@ -23,154 +20,199 @@ namespace Ghaymah.WondersAPI.Controllers } // -------------------- GET ALL -------------------- - /// - /// Get all wonders. - /// - /// List of all wonders. [HttpGet] [ProducesResponseType(typeof(IEnumerable), 200)] + [ProducesResponseType(500)] public async Task GetAllWonders() { - var wonders = await FetchAllWonders(); - LogFetchedWonders(wonders.Count); - return Ok(wonders); + try + { + var wonders = await _context.Wonders.ToListAsync(); + _logger.LogInformation("Fetched {Count} wonders from database", wonders.Count); + return Ok(wonders); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while fetching all wonders"); + return StatusCode(500, new { message = "An error occurred while retrieving wonders." }); + } } - private async Task> FetchAllWonders() => - await _context.Wonders.ToListAsync(); - - private void LogFetchedWonders(int count) => - _logger.LogInformation("Fetched {Count} wonders from database", count); - // -------------------- GET BY ID -------------------- - /// - /// Get a specific wonder by its ID. - /// - /// The ID of the wonder. - /// The wonder with the specified ID. [HttpGet("{id}")] [ProducesResponseType(typeof(Wonder), 200)] + [ProducesResponseType(400)] [ProducesResponseType(404)] - public async Task GetWonderById(int wonderId) + [ProducesResponseType(500)] + public async Task GetWonderById(string id) { - var wonder = await FindWonderOrNotFound(wonderId); - if (wonder is null) return NotFound(new { message = $"Wonder with ID {wonderId} not found" }); + if (!int.TryParse(id, out var wonderId)) + { + _logger.LogWarning("Invalid id provided: {Id}", id); + return BadRequest(new { message = "Invalid ID. Please provide a numeric ID." }); + } - return Ok(wonder); + try + { + var wonder = await _context.Wonders.FindAsync(wonderId); + if (wonder == null) + { + _logger.LogWarning("Wonder with ID {Id} not found", wonderId); + return NotFound(new { message = $"Wonder with ID {wonderId} not found" }); + } + + return Ok(wonder); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while fetching wonder by ID {Id}", wonderId); + return StatusCode(500, new { message = "An error occurred while retrieving the wonder." }); + } } - private async Task FindWonderOrNotFound(int wonderId) => - await _context.Wonders.FindAsync(wonderId); - // -------------------- CREATE -------------------- - /// - /// Create a new wonder. - /// - /// The wonder to create. - /// The created wonder. [HttpPost] [ProducesResponseType(typeof(Wonder), 201)] - public async Task CreateWonder([FromBody] Wonder newWonder) => - await SaveNewWonder(newWonder); - - private async Task SaveNewWonder(Wonder wonder) + [ProducesResponseType(400)] + [ProducesResponseType(500)] + public async Task CreateWonder([FromBody] Wonder newWonder) { - _context.Wonders.Add(wonder); - await _context.SaveChangesAsync(); - LogCreatedWonder(wonder.Name); - return CreatedAtAction(nameof(GetWonderById), new { wonderId = wonder.Id }, wonder); - } + if (newWonder == null) + return BadRequest(new { message = "Request body is required." }); - private void LogCreatedWonder(string name) => - _logger.LogInformation("Created new wonder: {Name}", name); + if (!ModelState.IsValid) + return BadRequest(ModelState); + + try + { + await _context.Wonders.AddAsync(newWonder); + await _context.SaveChangesAsync(); + + _logger.LogInformation("Created new wonder: {Name}", newWonder.Name); + + return CreatedAtAction(nameof(GetWonderById), new { id = newWonder.Id }, newWonder); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while creating wonder {Name}", newWonder.Name); + return StatusCode(500, new { message = "An error occurred while creating the wonder." }); + } + } // -------------------- UPDATE -------------------- - /// - /// Update an existing wonder. - /// - /// The ID of the wonder to update. - /// The updated wonder data. [HttpPut("{id}")] [ProducesResponseType(204)] + [ProducesResponseType(400)] [ProducesResponseType(404)] - public async Task UpdateWonder(int wonderId, [FromBody] Wonder updatedWonder) + [ProducesResponseType(500)] + public async Task UpdateWonder(string id, [FromBody] Wonder updatedWonder) { - var existingWonder = await FindWonderOrNotFound(wonderId); - if (existingWonder is null) return NotFound(); + if (!int.TryParse(id, out var wonderId)) + { + _logger.LogWarning("Invalid id provided for update: {Id}", id); + return BadRequest(new { message = "Invalid ID. Please provide a numeric ID." }); + } - return await SaveUpdatedWonder(existingWonder, updatedWonder); + if (updatedWonder == null) + return BadRequest(new { message = "Request body is required." }); + + if (!ModelState.IsValid) + return BadRequest(ModelState); + + // If the client provided an Id in the body, ensure it matches route id + if (updatedWonder.Id != 0 && updatedWonder.Id != wonderId) + return BadRequest(new { message = "ID mismatch between route and body." }); + + try + { + var existingWonder = await _context.Wonders.FindAsync(wonderId); + if (existingWonder == null) + { + _logger.LogWarning("Cannot update: wonder with ID {Id} not found", wonderId); + return NotFound(new { message = $"Wonder with ID {wonderId} not found" }); + } + + existingWonder.Name = updatedWonder.Name; + existingWonder.Country = updatedWonder.Country; + existingWonder.Era = updatedWonder.Era; + existingWonder.Type = updatedWonder.Type; + existingWonder.Description = updatedWonder.Description; + existingWonder.DiscoveryYear = updatedWonder.DiscoveryYear; + + await _context.SaveChangesAsync(); + _logger.LogInformation("Updated wonder with ID {Id}", wonderId); + + return NoContent(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while updating wonder with ID {Id}", wonderId); + return StatusCode(500, new { message = "An error occurred while updating the wonder." }); + } } - private async Task SaveUpdatedWonder(Wonder target, Wonder source) - { - CopyWonderValues(target, source); - await _context.SaveChangesAsync(); - LogUpdatedWonder(target.Id); - return NoContent(); - } - - private void CopyWonderValues(Wonder target, Wonder source) - { - target.Name = source.Name; - target.Country = source.Country; - target.Era = source.Era; - target.Type = source.Type; - target.Description = source.Description; - target.DiscoveryYear = source.DiscoveryYear; - } - - private void LogUpdatedWonder(int wonderId) => - _logger.LogInformation("Updated wonder with ID {Id}", wonderId); - // -------------------- DELETE -------------------- - /// - /// Delete a wonder by ID. - /// - /// The ID of the wonder to delete. [HttpDelete("{id}")] [ProducesResponseType(204)] + [ProducesResponseType(400)] [ProducesResponseType(404)] - public async Task DeleteWonder(int wonderId) + [ProducesResponseType(500)] + public async Task DeleteWonder(string id) { - var wonder = await FindWonderOrNotFound(wonderId); - if (wonder is null) return NotFound(); + if (!int.TryParse(id, out var wonderId)) + { + _logger.LogWarning("Invalid id provided for delete: {Id}", id); + return BadRequest(new { message = "Invalid ID. Please provide a numeric ID." }); + } - await RemoveWonder(wonder); - return NoContent(); + try + { + var wonder = await _context.Wonders.FindAsync(wonderId); + if (wonder == null) + { + _logger.LogWarning("Cannot delete: wonder with ID {Id} not found", wonderId); + return NotFound(new { message = $"Wonder with ID {wonderId} not found" }); + } + + _context.Wonders.Remove(wonder); + await _context.SaveChangesAsync(); + + _logger.LogInformation("Deleted wonder with ID {Id}", wonderId); + return NoContent(); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while deleting wonder with ID {Id}", wonderId); + return StatusCode(500, new { message = "An error occurred while deleting the wonder." }); + } } - private async Task RemoveWonder(Wonder wonder) - { - _context.Wonders.Remove(wonder); - await _context.SaveChangesAsync(); - LogDeletedWonder(wonder.Id); - } - - private void LogDeletedWonder(int wonderId) => - _logger.LogInformation("Deleted wonder with ID {Id}", wonderId); - // -------------------- GET RANDOM -------------------- - /// - /// Get a random wonder. - /// - /// A randomly selected wonder. [HttpGet("random")] [ProducesResponseType(typeof(Wonder), 200)] [ProducesResponseType(404)] + [ProducesResponseType(500)] public async Task GetRandomWonder() { - var allWonders = await FetchAllWonders(); - if (!allWonders.Any()) return NotFound(); + try + { + var wonders = await _context.Wonders.ToListAsync(); + if (!wonders.Any()) + { + _logger.LogWarning("No wonders available for random selection"); + return NotFound(new { message = "No wonders available." }); + } - var randomWonder = SelectRandomWonder(allWonders); - LogRandomWonder(randomWonder.Name); - return Ok(randomWonder); + var randomWonder = wonders[new Random().Next(wonders.Count)]; + _logger.LogInformation("Returned random wonder: {Name}", randomWonder.Name); + + return Ok(randomWonder); + } + catch (Exception ex) + { + _logger.LogError(ex, "Error while selecting random wonder"); + return StatusCode(500, new { message = "An error occurred while retrieving a random wonder." }); + } } - - private Wonder SelectRandomWonder(List wonders) => - wonders[new Random().Next(wonders.Count)]; - - private void LogRandomWonder(string name) => - _logger.LogInformation("Returned random wonder: {Name}", name); } } diff --git a/Logs/app-log2025100720251007.json b/Logs/app-log2025100720251007.json new file mode 100644 index 0000000..908bf22 --- /dev/null +++ b/Logs/app-log2025100720251007.json @@ -0,0 +1,77 @@ +{"Timestamp":"2025-10-07T00:13:33.9880951+03:00","Level":"Information","MessageTemplate":"Saved {count} entities to in-memory store.","Properties":{"count":6,"EventId":{"Id":30100,"Name":"Microsoft.EntityFrameworkCore.Update.ChangesSaved"},"SourceContext":"Microsoft.EntityFrameworkCore.Update"}} +{"Timestamp":"2025-10-07T00:13:34.0336022+03:00","Level":"Information","MessageTemplate":"Wonders API application started successfully at {time}","Properties":{"time":"2025-10-07T00:13:34.0320768+03:00","SourceContext":"Program"}} +{"Timestamp":"2025-10-07T00:13:34.1351660+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"https://localhost:7247","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}} +{"Timestamp":"2025-10-07T00:13:34.1369998+03:00","Level":"Information","MessageTemplate":"Now listening on: {address}","Properties":{"address":"http://localhost:5004","EventId":{"Id":14,"Name":"ListeningOnAddress"},"SourceContext":"Microsoft.Hosting.Lifetime"}} +{"Timestamp":"2025-10-07T00:13:34.1673734+03:00","Level":"Information","MessageTemplate":"Application started. Press Ctrl+C to shut down.","Properties":{"SourceContext":"Microsoft.Hosting.Lifetime"}} +{"Timestamp":"2025-10-07T00:13:34.1873356+03:00","Level":"Information","MessageTemplate":"Hosting environment: {EnvName}","Properties":{"EnvName":"Development","SourceContext":"Microsoft.Hosting.Lifetime"}} +{"Timestamp":"2025-10-07T00:13:34.1947537+03:00","Level":"Information","MessageTemplate":"Content root path: {ContentRoot}","Properties":{"ContentRoot":"D:\\WebApplication1","SourceContext":"Microsoft.Hosting.Lifetime"}} +{"Timestamp":"2025-10-07T00:13:34.6617870+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"905fda362a930fea20aa18c254c16cb4","SpanId":"8b4d58e53772e553","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:34.8626601+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"905fda362a930fea20aa18c254c16cb4","SpanId":"8b4d58e53772e553","Properties":{"ElapsedMilliseconds":202.9172,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000001","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:34.9058016+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"2f6892c4ae4bc1fa7f854aa7e163979a","SpanId":"d222839a1473fedd","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:34.9199137+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"2f6892c4ae4bc1fa7f854aa7e163979a","SpanId":"d222839a1473fedd","Properties":{"ElapsedMilliseconds":14.0404,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000003","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:34.9980254+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7118cfca753c3efb41f2087166eb955f","SpanId":"ac8350c6e42a7fa5","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:35.0615978+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7118cfca753c3efb41f2087166eb955f","SpanId":"ac8350c6e42a7fa5","Properties":{"ElapsedMilliseconds":63.6266,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000005","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:35.9850808+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"b96027cac6def5345c8a0b54d3ed51da","SpanId":"fc2990738e410b26","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:36.0089328+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"b96027cac6def5345c8a0b54d3ed51da","SpanId":"fc2990738e410b26","Properties":{"ElapsedMilliseconds":23.8956,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000007","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1409215+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"f115f1fa81ae884f921738a30ce24dec","SpanId":"391cf1728e8b74b0","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000009","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1525507+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"f115f1fa81ae884f921738a30ce24dec","SpanId":"391cf1728e8b74b0","Properties":{"ElapsedMilliseconds":11.6049,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000009","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1767810+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"a22424429d2589bc5ba726cdde4cb012","SpanId":"d4fa7dc9fca12c92","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000D","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1767810+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"e4102fad6867ba365da1e4805926392e","SpanId":"fadfd6fc820bed75","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000B","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1896033+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"a22424429d2589bc5ba726cdde4cb012","SpanId":"d4fa7dc9fca12c92","Properties":{"ElapsedMilliseconds":12.7389,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000D","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.1909964+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"e4102fad6867ba365da1e4805926392e","SpanId":"fadfd6fc820bed75","Properties":{"ElapsedMilliseconds":14.1841,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000B","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.3435392+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"908365bdea23b291e49d44cec21d74bd","SpanId":"086928a68544814e","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000F","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:13:45.3641504+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"908365bdea23b291e49d44cec21d74bd","SpanId":"086928a68544814e","Properties":{"ElapsedMilliseconds":20.583,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000000F","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.0801127+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/1","QueryString":"?wonderId=1","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.0961501+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.1310115+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"RouteData":"{action = \"GetWonderById\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetWonderById(Int32)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"78ef9251-d2c4-4ca6-813f-a0394a2e53c8","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.2998476+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"ObjectResultType":"OkObjectResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"78ef9251-d2c4-4ca6-813f-a0394a2e53c8","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.3117357+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","ElapsedMilliseconds":171.6125,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.3157300+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:27.3202143+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"e99c11f726daae37da335af827d14fc5","SpanId":"2a743ce4a145e8c0","Properties":{"ElapsedMilliseconds":240.0255,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/1","QueryString":"?wonderId=1","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000011","RequestPath":"/api/Wonders/1","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.6603299+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/3","QueryString":"?wonderId=3","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.6675217+03:00","Level":"Information","MessageTemplate":"Executing endpoint '{EndpointName}'","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","EventId":{"Name":"ExecutingEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.6710055+03:00","Level":"Information","MessageTemplate":"Route matched with {RouteData}. Executing controller action with signature {MethodInfo} on controller {Controller} ({AssemblyName}).","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"RouteData":"{action = \"GetWonderById\", controller = \"Wonders\"}","MethodInfo":"System.Threading.Tasks.Task`1[Microsoft.AspNetCore.Mvc.IActionResult] GetWonderById(Int32)","Controller":"Ghaymah.WondersAPI.Controllers.WondersController","AssemblyName":"Ghaymah.WondersAPI","EventId":{"Id":102,"Name":"ControllerActionExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","ActionId":"78ef9251-d2c4-4ca6-813f-a0394a2e53c8","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.7090223+03:00","Level":"Information","MessageTemplate":"Executing {ObjectResultType}, writing value of type '{Type}'.","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"ObjectResultType":"OkObjectResult","Type":"WondersAPI.Models.Wonder","EventId":{"Id":1,"Name":"ObjectResultExecuting"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ObjectResultExecutor","ActionId":"78ef9251-d2c4-4ca6-813f-a0394a2e53c8","ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.7114702+03:00","Level":"Information","MessageTemplate":"Executed action {ActionName} in {ElapsedMilliseconds}ms","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"ActionName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","ElapsedMilliseconds":35.077,"EventId":{"Id":105,"Name":"ActionExecuted"},"SourceContext":"Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.7138275+03:00","Level":"Information","MessageTemplate":"Executed endpoint '{EndpointName}'","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"EndpointName":"Ghaymah.WondersAPI.Controllers.WondersController.GetWonderById (Ghaymah.WondersAPI)","EventId":{"Id":1,"Name":"ExecutedEndpoint"},"SourceContext":"Microsoft.AspNetCore.Routing.EndpointMiddleware","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:35.7158614+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"bdf853ac2c53d1e61d1f8849e7739920","SpanId":"3b2cb95d8009cd35","Properties":{"ElapsedMilliseconds":55.5236,"StatusCode":200,"ContentType":"application/json; charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/api/Wonders/3","QueryString":"?wonderId=3","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000013","RequestPath":"/api/Wonders/3","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.1899049+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"1d5f5b0e0d71f7c1076a5dbb5ef34641","SpanId":"1a151d7ffc55b14d","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000015","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.1986966+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"1d5f5b0e0d71f7c1076a5dbb5ef34641","SpanId":"1a151d7ffc55b14d","Properties":{"ElapsedMilliseconds":8.7582,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000015","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.2380991+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"497c24d766b25cb8f1abac87df0dbbc5","SpanId":"dc293975b4c2e67d","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000017","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.2410581+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"497c24d766b25cb8f1abac87df0dbbc5","SpanId":"dc293975b4c2e67d","Properties":{"ElapsedMilliseconds":2.9465,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000017","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.2499770+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"973cfede5f067a2768cef65b801601e4","SpanId":"0014b8e4c945cba3","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000019","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.2598403+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"973cfede5f067a2768cef65b801601e4","SpanId":"0014b8e4c945cba3","Properties":{"ElapsedMilliseconds":9.8364,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000019","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.3328139+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"0dd9939ea3c2dbcd1906be75d498372c","SpanId":"48d49c02eeb57e7a","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.3466224+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"0dd9939ea3c2dbcd1906be75d498372c","SpanId":"48d49c02eeb57e7a","Properties":{"ElapsedMilliseconds":13.7392,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6029546+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"0828e4cbfe7212e18697d7d7c0f1e8e5","SpanId":"46b92d3e3143b2df","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001D","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6075371+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"0828e4cbfe7212e18697d7d7c0f1e8e5","SpanId":"46b92d3e3143b2df","Properties":{"ElapsedMilliseconds":4.5007,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001D","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6340234+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"18b1b4aa7c63c5753af313202e16b776","SpanId":"30854f26915a6827","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001F","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6341417+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"b58fad112087f796838d8c03555bda74","SpanId":"69bd8c3ad324affb","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000021","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6406164+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"18b1b4aa7c63c5753af313202e16b776","SpanId":"30854f26915a6827","Properties":{"ElapsedMilliseconds":6.5802,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000001F","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.6408023+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"b58fad112087f796838d8c03555bda74","SpanId":"69bd8c3ad324affb","Properties":{"ElapsedMilliseconds":6.6296,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000021","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.7674195+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"be0ca2c099772c17b081878b0973a549","SpanId":"229a2fd1eb375922","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000023","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.7807391+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"be0ca2c099772c17b081878b0973a549","SpanId":"229a2fd1eb375922","Properties":{"ElapsedMilliseconds":13.3026,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000023","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.7971381+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"d8f9855919b444860224e7d9ab5f20ce","SpanId":"19df7724a4197a1d","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000025","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.8017785+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"d8f9855919b444860224e7d9ab5f20ce","SpanId":"19df7724a4197a1d","Properties":{"ElapsedMilliseconds":4.6306,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000025","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.8382330+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7fd795676034cec61bc78b06d4a16ace","SpanId":"dd32b528b009ed0c","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000027","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.8383511+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"939a5e9bc3588f2efc5df6fb1a8082ee","SpanId":"bc4e2b422e8be37b","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000029","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.8413593+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7fd795676034cec61bc78b06d4a16ace","SpanId":"dd32b528b009ed0c","Properties":{"ElapsedMilliseconds":3.0786,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000027","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.8491730+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"939a5e9bc3588f2efc5df6fb1a8082ee","SpanId":"bc4e2b422e8be37b","Properties":{"ElapsedMilliseconds":10.7857,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000029","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.9420004+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"0b8d542188a851a3ae844d091d1bfb51","SpanId":"ba1f4a2b796dd5a7","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:58.9556996+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"0b8d542188a851a3ae844d091d1bfb51","SpanId":"ba1f4a2b796dd5a7","Properties":{"ElapsedMilliseconds":13.6546,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0426344+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"63df6d17266be7e2da7e3c3f7b85bdd9","SpanId":"acd809c4735ca515","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002D","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0469829+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"63df6d17266be7e2da7e3c3f7b85bdd9","SpanId":"acd809c4735ca515","Properties":{"ElapsedMilliseconds":4.3124,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002D","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0765326+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"78fdec2f8ddcf52b890fcfed0179f53a","SpanId":"0f0509233b8b24ce","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002F","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0765481+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"7b242cbf1bde97a6ed62b14416239b2d","SpanId":"821d457fce69e095","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000031","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0826179+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"78fdec2f8ddcf52b890fcfed0179f53a","SpanId":"0f0509233b8b24ce","Properties":{"ElapsedMilliseconds":6.0469,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000002F","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.0889136+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"7b242cbf1bde97a6ed62b14416239b2d","SpanId":"821d457fce69e095","Properties":{"ElapsedMilliseconds":12.3291,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000031","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.1811584+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"3a381c1e2f466fd8a1b6c120f3f28610","SpanId":"e0eb058c495e5b16","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000033","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.1925572+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"3a381c1e2f466fd8a1b6c120f3f28610","SpanId":"e0eb058c495e5b16","Properties":{"ElapsedMilliseconds":11.3177,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000033","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.2141651+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"60abf48c5731d2c20a4068d9105689fd","SpanId":"f27a1767869c2128","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000035","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.5145469+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"60abf48c5731d2c20a4068d9105689fd","SpanId":"f27a1767869c2128","Properties":{"ElapsedMilliseconds":300.3516,"StatusCode":200,"ContentType":"text/html;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/index.html","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000035","RequestPath":"/swagger/index.html","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.5380287+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"c0e33ff38ffc1f8936c7fb27c4eeef1d","SpanId":"cce5d18cff8800b6","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000039","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.5380287+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"f721e5f016fa4e25df0c7e7ed96aa580","SpanId":"32b7ac17033b8c18","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000037","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.5448367+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"c0e33ff38ffc1f8936c7fb27c4eeef1d","SpanId":"cce5d18cff8800b6","Properties":{"ElapsedMilliseconds":6.7698,"StatusCode":200,"ContentType":"text/javascript; charset=UTF-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_vs/browserLink","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000039","RequestPath":"/_vs/browserLink","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.5453815+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"f721e5f016fa4e25df0c7e7ed96aa580","SpanId":"32b7ac17033b8c18","Properties":{"ElapsedMilliseconds":7.3468,"StatusCode":200,"ContentType":"application/javascript; charset=utf-8","ContentLength":16520,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/_framework/aspnetcore-browser-refresh.js","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:00000037","RequestPath":"/_framework/aspnetcore-browser-refresh.js","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.6453996+03:00","Level":"Information","MessageTemplate":"Request starting {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {ContentType} {ContentLength}","TraceId":"962d76ed2167dac81dd55af4879acc55","SpanId":"a12229d8343817c0","Properties":{"Protocol":"HTTP/2","Method":"GET","ContentType":null,"ContentLength":null,"Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":1},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000003B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}} +{"Timestamp":"2025-10-07T00:14:59.6574772+03:00","Level":"Information","MessageTemplate":"Request finished {Protocol} {Method} {Scheme}://{Host}{PathBase}{Path}{QueryString} - {StatusCode} {ContentLength} {ContentType} {ElapsedMilliseconds}ms","TraceId":"962d76ed2167dac81dd55af4879acc55","SpanId":"a12229d8343817c0","Properties":{"ElapsedMilliseconds":12.0519,"StatusCode":200,"ContentType":"application/json;charset=utf-8","ContentLength":null,"Protocol":"HTTP/2","Method":"GET","Scheme":"https","Host":"localhost:7247","PathBase":"","Path":"/swagger/v1/swagger.json","QueryString":"","EventId":{"Id":2},"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestId":"0HNG53KQPLA68:0000003B","RequestPath":"/swagger/v1/swagger.json","ConnectionId":"0HNG53KQPLA68"}}