Bukan rahasia lagi bahwa Telegram saat ini adalah salah satu pembawa pesan paling populer. Terutama di kalangan profesional IT. Ini ramah pengguna, tidak memiliki iklan yang disematkan dan bekerja dengan sangat stabil. Sebagian besar waktu saya berkomunikasi baik tentang pekerjaan dan masalah pribadi di messenger ini. Oleh karena itu, suatu hari saya berpikir bahwa akan lebih mudah sehingga dalam utusan yang sama saya dapat menerima pemberitahuan tentang pengoperasian beberapa layanan saya. Pada saat itu, saya baru saja secara aktif bekerja untuk mengintegrasikan proyek // devdigest dan Telegram, jadi dengan menggunakan Telegram Bot SDK asli yang sama, saya segera menerapkan logger.
Beberapa hari yang lalu saya memutuskan untuk kembali ke proyek ini, sedikit membersihkan dan merefaktor kodenya, dan kemudian membuatnya tersedia untuk umum - mungkin kemampuan untuk mendapatkan log di Telegram akan berguna bagi orang lain.
Latihan
Sebelum melanjutkan ke konfigurasi logger itu sendiri, Anda perlu menyelesaikan beberapa langkah awal. Yaitu, buat saluran (publik atau pribadi) di mana log akan ditampilkan dan buat bot di telegram, di mana proses penerbitan log akan diterapkan.
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": "*"
}
Selanjutnya, contoh IConfiguration harus diteruskan ke metode ekstensi AddTelegram (),
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>(); });
Contohnya ada di sini
Instalasi
Anda dapat menginstal logger dari NuGet , atau mengintegrasikan kode tersebut langsung ke dalam proyek Anda. Perpustakaan didistribusikan di bawah lisensi MIT .