用於Serilog和標準.NET日誌記錄的電報記錄提供商。
什麼是電報?我在這裡做什麼? Telegram是一個通訊應用程序,專注於速度和安全性,它是超級快速,簡單而免費的。您可以同時使用所有設備上的電報 - 您的消息在任何數量的手機,平板電腦或計算機上都無縫同步。 Telegram每月有超過5億個活躍用戶,並且是世界上下載最多的10個應用程序之一。
因為它非常舒適 - 您可以直接收到智能手機或筆記本電腦的重要消息。
要將日誌消息發送到電報頻道或聊天中,您需要創建電報機器人。在這裡,您可以找到如何做。創建bot後,將其添加到indrain角色中,並允許bot發布消息。
在電報中,有兩種類型的渠道:公共和私人。對於公共頻道,您可以在配置中使用頻道名稱作為chatid 。
對於私人頻道,您可以使用@jsondumpbot獲取私人頻道ID。只需向私人Channelto轉發此機器人的任何消息。您可以在此處找到其他信息。
不要忘記將您的bot添加為管理員,並在頻道上添加寫信權限。
x.extensions.logging.telegram是標準.NET記錄的記錄提供商。
您可以通過代碼或配置文件配置電報記錄提供商:
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 <字符串,應將itelegrammessageFormatter>傳遞給擴展名方法addtelegram。應該使用委託,因為格式化器需要知道哪個類別用於渲染消息。
X.Serilog.sinks.telegram是一個開源serilog水槽,可讓您將日誌事件發送到電報。這是將電報作為記錄輸出集成的便捷方法,使您能夠直接在聊天中收到重要的日誌信息。
實時記錄:該水槽提供了實時將日誌事件發送到電報頻道的能力,以確保您可以隨時了解應用程序的行為以及出現的任何問題。
可自定義的格式:您可以配置發送到電報頻道的日誌消息的格式,從而使您根據自己的偏好和特定要求量身定制它們。
過濾:接收器在將日誌事件分配到電報頻道之前支持過濾日誌事件,以確保僅共享相關信息。
異步發送:日誌事件異步發送到Telegram頻道,最大程度地減少對應用程序性能的潛在影響。
簡單配置:將水槽配置為使用電報頻道工作很簡單,您可以在配置Wiki中找到全面的信息。
要開始使用X.Serilog.sinks.telegram sink,請按照以下步驟:
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許可獲得許可。