ผู้ให้บริการบันทึกโทรเลขสำหรับ Serilog และมาตรฐาน. NET Logging
โทรเลขคืออะไร? ฉันจะทำอะไรที่นี่? Telegram เป็นแอพส่งข้อความโดยมุ่งเน้นที่ความเร็วและความปลอดภัยมันเร็วมากง่ายและฟรี คุณสามารถใช้โทรเลขบนอุปกรณ์ทั้งหมดของคุณในเวลาเดียวกัน - ข้อความของคุณซิงค์อย่างราบรื่นกับโทรศัพท์แท็บเล็ตหรือคอมพิวเตอร์จำนวนเท่าใดก็ได้ Telegram มีผู้ใช้งานมากกว่า 500 ล้านคนต่อเดือนและเป็นหนึ่งใน 10 แอพที่ดาวน์โหลดมากที่สุดในโลก
เพราะมันสะดวกสบายมาก - คุณสามารถรับข้อความสำคัญโดยตรงไปยังสมาร์ทโฟนหรือแล็ปท็อปของคุณ
สำหรับการส่งข้อความบันทึกไปยังช่องโทรเลขหรือแชทคุณต้องสร้าง Telegram Bot มาก่อน ที่นี่คุณสามารถค้นหาวิธีการทำ หลังจากที่คุณสร้างบอทเพิ่มลงในช่องที่มีบทบาทผู้ดูแลระบบและอนุญาตให้บอทโพสต์ข้อความ
ใน Telegram มีสองช่องทาง: สาธารณะและส่วนตัว สำหรับช่องสาธารณะคุณสามารถใช้ชื่อช่องเป็น chatid ในการกำหนดค่า
สำหรับช่องส่วนตัวคุณสามารถใช้ @JSondumpBot เพื่อรับรหัสช่องส่วนตัว เพียงส่งต่อข้อความใด ๆ จากช่องส่วนตัวไปยังบอทนี้ ข้อมูลเพิ่มเติมที่คุณสามารถหาได้ที่นี่
อย่าลืม เพิ่มบอทของคุณในฐานะผู้ดูแลระบบด้วยการอนุญาต การเขียนข้อความ ไปยังช่อง
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": "*"
}
และผ่านการกำหนดค่าไอคอนไปยังวิธีการขยาย
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 ) ;สำหรับการใช้ Formatter Formatter ที่กำหนดเอง func <string, itelegrammessageFormatter> ควรส่งผ่านไปยังวิธีการขยายส่วนขยาย addTelegram ผู้แทนควรใช้เพราะฟอร์แมตจำเป็นต้องรู้ว่าหมวดหมู่ใดที่ใช้สำหรับการแสดงผลข้อความ
X.Serilog.sinks.Telegram เป็นอ่างล้างจานแบบโอเพนซอร์ซที่ให้คุณส่งเหตุการณ์บันทึกไปยังโทรเลข เป็นวิธีที่สะดวกในการรวม Telegram เป็นเอาต์พุตการบันทึกทำให้คุณสามารถรับข้อมูลบันทึกที่สำคัญได้โดยตรงในการแชทของคุณ
การบันทึกแบบเรียลไทม์ : อ่างล้างจานเสนอความสามารถในการส่งเหตุการณ์บันทึกไปยังช่องโทรเลขแบบเรียลไทม์เพื่อให้แน่ใจว่าคุณสามารถติดตามพฤติกรรมของแอปพลิเคชันและปัญหาใด ๆ ที่เกิดขึ้น
การจัดรูปแบบที่ปรับแต่งได้ : คุณสามารถกำหนดค่ารูปแบบของข้อความบันทึกที่ส่งไปยังช่องโทรเลขช่วยให้คุณปรับแต่งให้เหมาะกับการตั้งค่าและข้อกำหนดเฉพาะของคุณ
การกรอง : อ่างล้างจานสนับสนุนเหตุการณ์บันทึกการกรองก่อนที่พวกเขาจะถูกส่งไปยังช่องโทรเลขเพื่อให้มั่นใจว่ามีการแชร์ข้อมูลที่เกี่ยวข้องเท่านั้น
การส่งแบบอะซิงโครนัส : เหตุการณ์บันทึกจะถูกส่งแบบอะซิงโครนัสไปยังช่องโทรเลขลดผลกระทบที่อาจเกิดขึ้นกับประสิทธิภาพของแอปพลิเคชันของคุณ
การกำหนดค่าที่ง่าย : การกำหนดค่าอ่างล้างจานเพื่อทำงานกับช่องโทรเลขของคุณนั้นตรงไปตรงมาและคุณสามารถค้นหาข้อมูลที่ครอบคลุมในการกำหนดค่าวิกิ
ในการเริ่มต้นใช้ 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 ( ) ;สำหรับตัวเลือกการกำหนดค่าโดยละเอียดเพิ่มเติมโปรดดูการกำหนดค่าวิกิ
พื้นที่เก็บข้อมูลนี้มีหลายโครงการที่แสดงให้เห็นถึงวิธีการใช้ห้องสมุดทั้งสองในสถานการณ์ต่าง ๆ ตัวอย่างเหล่านี้มีประโยชน์หากคุณเริ่มต้นหรือต้องการใช้คุณสมบัติเฉพาะ
อย่าลังเลที่จะเพิ่มการปรับปรุงใด ๆ ที่คุณต้องการผ่านคำขอดึง คำขอดึงทั้งหมดจะต้องเชื่อมโยงกับปัญหา
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT