Protokollierungsanbieter für Telegramm (.NET 5 / .NET Core)

Es ist kein Geheimnis, dass Telegram derzeit einer der beliebtesten Boten ist. Besonders unter IT-Profis. Es ist benutzerfreundlich, hat keine eingebetteten Anzeigen und funktioniert sehr stabil. Die meiste Zeit kommuniziere ich in diesem Messenger sowohl über die Arbeit als auch über persönliche Themen. Daher dachte ich eines Tages, dass es praktisch wäre, im selben Messenger Benachrichtigungen über den Betrieb einiger meiner Dienste zu erhalten. Zu dieser Zeit arbeitete ich nur aktiv an der Integration des // devdigest- und Telegram- Projekts . Mit demselben nativen Telegram Bot SDK implementierte ich den Logger schnell.





Vor ein paar Tagen habe ich mich entschlossen, zu diesem Projekt zurückzukehren, den Code leicht zu bereinigen und umzugestalten und ihn dann öffentlich verfügbar zu machen - vielleicht ist die Möglichkeit, Protokolle in Telegramm abzurufen, für andere nützlich.





So kommen die Telegrammprotokolle aus einem der Projekte, die ich gerade mache
So kommen die Telegrammprotokolle aus einem der Projekte, die ich gerade mache

Ausbildung

Bevor Sie mit der Konfiguration des Loggers selbst fortfahren, müssen Sie einige vorbereitende Schritte ausführen. Erstellen Sie nämlich einen Kanal (öffentlich oder privat), in dem Protokolle angezeigt werden, und erstellen Sie einen Bot in Telegrammen, über den der Prozess der Veröffentlichung der Protokolle implementiert wird.





Telegram, .  , Telegram . , , , .





. - . - .





.

@JsonDumpBot. . :





{
  "update_id": 111001100,
  "message": {
    "message_id": 123456,
    "from": {
      "id": 12345678,
      "is_bot": false,
      "first_name": "FirstName",
      "username": "username",
      "language_code": "en"
    },
    "chat": {
      "id": 123456,
      "first_name": "FirstName",
      "username": "username",
      "type": "private"
    },
    "date": 1111111111,
    "forward_from_chat": {
      "id": -1123456789101,
      "title": "torf.tv logs",
      "type": "channel"
    },
    "forward_from_message_id": 1,
    "forward_date": 1111111111,
    "text": "test"
  }
}
      
      



forward_from_chat -> id





, .





TelegramLoggerOptions, :





  • AccessToken – ;





  • ChatId – (, ), , ;





  • LogLevel – , . Warning, Error;





  • Source – . , ;





– , .





TelegramLoggerOptions.





var options = new TelegramLoggerOptions
{
    AccessToken = "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
    ChatId = "-0000000000000",
    LogLevel = LogLevel.Information,
    Source = "Human Readable Project Name"
};
      
      



- AddTelegram():





builder
  .ClearProviders()
  .AddTelegram(options)
  .AddConsole();
      
      



.





appconfig.json

, :





{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    },
    "Telegram": {
      "LogLevel": "Warning",
      "AccessToken": "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
      "ChatId": "@channel_name",
      "Source": "Human Readable Project Name"
    }
  },
  "AllowedHosts": "*"
}

      
      



Als nächstes muss eine IConfiguration-Instanz an die Erweiterungsmethode AddTelegram () übergeben werden.





public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging((context, builder) =>
        {
            if (context.Configuration != null)
                builder
                    .AddTelegram(context.Configuration)
                    .AddConsole();
        })
        .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<startup>(); });

      
      



Ein Beispiel ist hier





Installation

Sie können den Logger von NuGet installieren oder den Code direkt in Ihr Projekt integrieren. Die Bibliothek wird unter der MIT-Lizenz vertrieben .












All Articles