Serilogおよび標準の.NETロギング用のTelegramロギングプロバイダー。
電報とは何ですか?ここで何をしますか? Telegramは、スピードとセキュリティに焦点を当てたメッセージングアプリであり、超高速で、シンプルで無料です。すべてのデバイスで同時にTelegramを使用できます。メッセージは、携帯電話、タブレット、コンピューターの任意の数でシームレスに同期します。 Telegramには、毎月5億人以上のアクティブユーザーがおり、世界で最もダウンロードされた10のアプリの1つです。
非常に快適なので、重要なメッセージをスマートフォンやラップトップに直接受信できます。
ログメッセージをTelegramチャンネルまたはチャットに送信するには、以前にTelegramボットを作成する必要があります。ここであなたはそれをする方法を見つけることができます。ボットを作成した後、管理者の役割を備えたチャネルに追加し、ボットがメッセージを投稿できるようにします。
電報には、パブリックとプライベートの2つのタイプのチャネルがあります。パブリックチャネルの場合、構成のChatIDとしてチャンネル名を使用できます。
プライベートチャネルの場合、@jsondumpbotを使用してプライベートチャネルIDを取得できます。プライベートチャンネルからこのボットにメッセージを転送してください。ここで見つけることができます。
チャンネルへのメッセージを書き込むことで管理者としてボットを追加することを忘れないでください。
x.extensions.logging.telegramは、標準の.NETロギング用のロギングプロバイダーです。
Telegramロギングプロバイダーをコードまたは構成ファイルで構成できます。
var options = new TelegramLoggerOptions ( LogLevel . Information )
{
AccessToken = "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA" ,
ChatId = "-0000000000000" ,
Source = "Human Readable Project Name"
} ;
.. .
builder
. ClearProviders ( )
. AddTelegram ( options )
. AddConsole ( ) ;
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
},
"Telegram": {
"LogLevel": {
"Default": "Error",
"WebApp.Controllers": "Warning"
},
"AccessToken": "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
"ChatId": "1234567890",
"Source": "Human Readable Project Name"
}
},
"AllowedHosts": "*"
}
ICONFigurationオブジェクトを拡張メソッドに渡します
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>(); });
現在、開発者はデータを書き込むために独自の実装を使用して電報に使用できます。カスタムライターはiLogWriterインターフェイスを実装する必要があります。
var customLogWriter = new CustomLogWriter ( ) ;
logBuilder . AddTelegram ( options , customLogWriter ) ;カスタムメッセージのフォーマットを実装するには、 itelegrammessageFormatterを使用することができます。
private ITelegramMessageFormatter CreateFormatter ( string name )
{
return new CustomTelegramMessageFormatter ( name ) ;
}
logBuilder . AddTelegram ( options , CreateFormatter ) ;カスタムメッセージフォーマッタデリゲートFUNC <Stringを使用するには、iteLegrAmmamSageFormatter>を拡張メソッドaddteLegramに渡す必要があります。フォーマッタは、メッセージのレンダリングに使用されるカテゴリを知る必要があるため、代表者を使用する必要があります。
x.serilog.sinks.telegramは、ログイベントをTelegramに送信できるオープンソースのセリログシンクです。 Telegramをログ出力として統合するのに便利な方法であり、チャットで重要なログ情報を直接受信できるようにします。
リアルタイムロギング:シンクは、ログイベントをリアルタイムで電報チャンネルに送信する機能を提供し、アプリケーションの動作と発生した問題を最新の状態に保つことができるようにします。
カスタマイズ可能なフォーマット:Telegramチャンネルに送信されたログメッセージの形式を構成し、好みと特定の要件に合わせて調整できるようにします。
フィルタリング:シンクは、テレグラムチャネルに派遣される前にログイベントのフィルタリングをサポートし、関連情報のみが共有されるようにします。
非同期送信:ログイベントは非同期に電報チャネルに送信され、アプリケーションのパフォーマンスへの潜在的な影響が最小限に抑えられます。
簡単な構成:Telegramチャンネルで動作するシンクを構成するのは簡単で、構成wikiに包括的な情報を見つけることができます。
x.serilog.sinks.telegramシンクの使用を開始するには、次の手順に従ってください。
dotnet add package X.Serilog.Sinks.Telegram Log . Logger = new LoggerConfiguration ( )
. WriteTo . TelegramCore (
token : botToken ,
chatId : loggingChatId ,
logLevel : LogEventLevel . Verbose )
. WriteTo . Console ( )
. CreateLogger ( ) ;より詳細な構成オプションについては、構成wikiを参照してください。
このリポジトリには、さまざまなシナリオで両方のライブラリを使用する方法を示すいくつかのプロジェクトが含まれています。これらの例は、特定の機能を開始または使用しようとしている場合に役立ちます。
プルリクエストを介して必要な改善を自由に追加してください。すべてのプルリクエストは問題にリンクする必要があります。
このプロジェクトは、MITライセンスの下でライセンスされています。