Serilog
تعریف
فریم ورک open source هست که در دات نت برای عملیات logging استفاده می شود ، یک فریم ورک منعطف و موثر که لاگ ها رو می گیرد و آن ها را در فرمت های مختلف در دیتابیس ، فایل یا سرویس های خارجی به صورت ساختار یافته و حالت (key-value) ذخیره می کند و نسبت به فریم ورک هایی که به این منظور استفاده می شود جدیدتر است و نیاز به config خاصی برای نمایش ندارد.
مانند بسیاری از کتابخانه های دیگر برای دات نت، Serilog امکان ثبت لاگ درون فایل، محیط کنسول، دیتابیس و جاهای دیگر با فرمت Json را فراهم می کند. راه اندازی Serilog بسیار آسان است و قابل استفاده در اکثر پلتفرم های دات نت می باشد.
ویژگی های اصلی
استفاده از logging api برای پشتیبانی از6 سطح مختلف لاگ
اولویت بندی و سطح بندی لاگ ها بر اساس شدت و اهمیت با استفاده از سطوح مختلف لاگ
یگپارچگی راحت با ابزارهایی مثل Seq , Elastic Search
Override logger
پشتیبانی از انواع Sink
از معروف ترین sink های Serilog می توان به موارد زیر اشاره کرد:
Logs in seq
Seq یک سرور جستجو ، تحلیل و هشدار است که برای لاگ کردن دیتای مدرن و ساختار یافته استفاده می شود . برای پیاده سازی آن باید nugget ان را به پروژه اضافه می کنیم و config مربوط به ان را در appsetting اضافه می کنیم که در آن محل ذخیره سازی لاگ نیز مشخص می شود
Seq ویژگی های زیادی دارد که یکی از مهمترین مشخصه آن وجود داشبورد است که errors/exceptions/events را به صورت گرافیکی زیبا نمایش می دهد.
Logs in ELK using serilog
یک ELK موتور متن باز و ساختار یافته برای جستجو و تحلیل دیتاهای بزرگ استفاده می شود
پکیج مربوط به آن را برای پیاده سازی اضافه می کنیم و config لازم را اضافه می کنیم
ساختار؟
در گذشته پیغام های لاگ به صورت string هست اما Serilog به صورت ساختار یافته نمایش داده می شود و با فرمت Json هم نمایش داده می شود.
ساختار Serilog
پیاده سازی
1. نصب پکیج های زیر
2. Config project
3. Add Iserilog to controller
منابع
https://code-maze.com/structured-logging-in-asp-net-core-with-serilog/