用于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许可获得许可。