This commit is contained in:
32
BotPages.Core/Middleware/LoggingMiddleware.cs
Normal file
32
BotPages.Core/Middleware/LoggingMiddleware.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using BotPages.Core.Abstractions;
|
||||
using BotPages.Core.Logging;
|
||||
|
||||
namespace BotPages.Core.Middleware;
|
||||
|
||||
/// <summary>
|
||||
/// Middleware для логирования всех входящих апдейтов.
|
||||
/// </summary>
|
||||
public sealed class LoggingMiddleware : IPageMiddleware
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public LoggingMiddleware(ILogger logger) => _logger = logger;
|
||||
|
||||
/// <inheritdoc/>
|
||||
public async Task InvokeAsync(PageContext ctx, Func<Task> next, CancellationToken ct)
|
||||
{
|
||||
// Логируем базовую информацию
|
||||
_logger.Log(LogLevel.Info, $"Update from {ctx.Update.MessengerType} | Chat: {ctx.Update.Chat.Id} | User: {ctx.Update.User.Id}");
|
||||
|
||||
// Логируем текст, кнопки, файлы
|
||||
if (ctx.Update.Text is not null)
|
||||
_logger.Log(LogLevel.Info, $"Text: {ctx.Update.Text}");
|
||||
|
||||
if (ctx.Update.Files.Count > 0)
|
||||
_logger.Log(LogLevel.Info, $"Files: {ctx.Update.Files.Count}");
|
||||
|
||||
// Передаём управление дальше по конвейеру
|
||||
await next();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user