1234567891011121314151617181920212223242526272829303132333435 |
- using Logger.Services.Interfaces;
- using Microsoft.AspNetCore.Http;
- using System;
- using System.Collections.Generic;
- using System.Reflection;
- using System.Threading;
- using System.Threading.Tasks;
-
- namespace Logger.Services
- {
- public class LoggerServices
- {
- private readonly RequestDelegate _next;
- public LoggerServices(RequestDelegate next)
- {
- _next = next;
- }
-
- public async Task Invoke(HttpContext context, IMonLogger _logger)
- {
- context ??= new DefaultHttpContext();
-
- try
- {
- _logger.AddAction($"{this.GetType().Name} -> {context?.Request?.Method} -> {context?.Request?.Path} -> {context?.Request?.Headers} -> {context?.Request?.Host}");
- await _next(context);
- }
- finally
- {
- Task Twrite = new Task(() => _logger.Write());
- Twrite.Start();
- }
- }
- }
- }
|