9bb2

آموزش استفاده از Serilog در asp.net core

کدسل برنامه نویسی وب Asp.Net Core

لینک کوتاه https://codecell.ir/course/9bb2
مدرس: سهراب قیصری
تعداد ویدیوها: 5
مدت زمان دوره: 00:59:03
وضعیت دوره: در حال برگزاری
آخرین بروزرسانی: 1401/10/18
به اشتراک گذاری
نظرات
2
دیگر آموزش های مدرس:
آموزش استفاده از Serilog در asp core

لاگ گیری یا Logging چیست؟

امروزه لاگ گرفتن از سیستم یکی از اساسی ترین مواردی است که هر اپلیکیشنی به آن نیاز دارد. برای عیب یابی هر گونه مشکل در سیستم استفاده از logger امری ضروری است. Logger برای ایجاد فایل های خطای سفارشی شده یا رویدادهای سیستم استفاده می شود.

با کمک logging نه تنها می‌ توانیم آنچه را که در برنامه اتفاق می‌افتد ردیابی کنیم، بلکه به ردیابی هر نوع exception نیز کمک می‌کند. این exception در واقع زمانی مفید است که متد دقیق و شماره خط را با جزئیات پیام مناسب نشان دهد. بنابراین با کمک log، توسعه دهندگان می توانند به راحتی بفهمند که خطای واقعی چیست.

Serilog چیست؟

Serilog یک کتابخانه logging ساختاری برای Microsoft.Net است و به کتابخانه logging ترجیحی برای برنامه‌های .Net تبدیل شده است. 
کتابخانه های logging ، ارسال لاگ های خود را به مکان‌ های مختلف از طریق پیکربندی‌ های ساده آسان می‌کنند. Serilog از آنچه (سینک)sink نامیده می شود استفاده می کند تا لاگ های ما را به یک فایل متنی، پایگاه داده یا مکان های دیگر ارسال کند. 
مانند بسیاری از کتابخانه های دیگر برای دات نت، Serilog امکان ثبت لاگ درون فایل، محیط کنسول، دیتابیس و جاهای دیگر را فراهم می کند. راه اندازی Serilog بسیار آسان است و قابل استفاده در اکثر پلتفرم های دات نت می باشد. 
الگوهای پیام Serilog یک DSL ساده است که فرمت رشته های .NET را گسترش می دهد. پارامترها را می ‌توان نام ‌گذاری کرد و مقادیر آن‌ ها به‌ عنوان ویژگی‌ روی event برای انعطاف ‌پذیری باور نکردنی در جستجو و مرتب ‌سازی serialize می‌شوند.

var position = new { Latitude = 25, Longitude = 134 };
var elapsedMs = 34;
log.Information("Processed {@Position} in {Elapsed:000} ms.", position, elapsedMs);

این مثال دو ویژگی Position و Elapsed را به همراه رویداد log ثبت می کند. ویژگی های ثبت شده در مثال، در قالب JSON، به صورت زیر ظاهر می شوند:

{"Position": {"Latitude": 25, "Longitude": 134}, "Elapsed": 34}

عملگر @ در جلوی Position به Serilog می‌گوید که به جای تبدیل آن با استفاده از ToString، شیء ارسال شده را serialize کند.

بخش :000 در Elapsed یک فرمت رشته ستاندارد دات نت است که بر نحوه رندر شدن ویژگی تأثیر می گذارد. sink کنسول همراه با Serilog پیام فوق را به صورت زیر نمایش می دهد:

09:14:22 [Information] Processed { Latitude: 25, Longitude: 134 } in 034 ms.

Sink(سینک) ها در Serilog

Serilog برای نوشتن لاگ رویدادها در قالب های مختلف ذخیره سازی sink هایی را ارائه می دهد. این sink ها توسط جامعه گسترده Serilog توسعه یافته و پشتیبانی می شوند. از معروف ترین sink های Serilog می توان به موارد زیر اشاره کرد:

  • Console
  • File
  • SQL Server
  • Seq

لیست کامل sink های Serilog را از اینجا ببینید.

چرا باید از Serilog استفاده کنیم؟

  • اکوسیستم وسیع Serilog متشکل از صدها انجمن است که کنسول، فایل، صف پیام، Seq، جستجوی الاستیک، مرکز رویداد Azure و غیره را پوشش می‌دهد.
  • API ساده و آسان برای توسعه دارد.
  • قابلیت تعویض یکپارچه فرمت خروجی به متن ساده یا Json.
  • راه اندازی آن بسیار آسان است.

آموزش نحوه استفاده از Serilog در Asp.net Core

ما در این دوره آموزشی ابتدا یک پروژه Asp.net Core 6 MVC ایجاد خواهیم کرد و سپس Serilog را برای انجام عملیات Logging به آن اضافه خواهیم کرد. در ادامه نحوه استفاده از سینک های Console، File، SQLServer و Seq در Serilog را در Asp.net Core 6 آموزش خواهیم داد.

سرفصل های دوره آموزش استفاده از Serilog در Asp.net Core

  • آموزش نحوه راه اندازی و استفاده از Serilog در Asp.net Core
  • آموزش نحوه استفاده از سینک Console در Serilog در Asp.net Core
  • آموزش نحوه استفاده از سینک File در Serilog در Asp.net Core
  • آموزش نحوه استفاده از سینک SQLServer در Serilog در Asp.net Core
  • آموزش نحوه استفاده از سینک Seq در Serilog در Asp.net Core
  • آموزش نحوه خواندن تنظیمات سینک Serilog از فایل appsettings.json در Asp.net Core
  • آموزش نحوه استفاده از Enricher(غنی‌ کننده‌ ها) در Serilog در Asp.net Core

دریافت سورس پروژه آموزش استفاده از Serilog در Asp.net core

فهرست ویدیوها
مدت زمان دوره: 00:59:03
01

آموزش نحوه راه اندازی و استفاده از Serilog و سینک Console در Asp.net Core

00:10:02
02

آموزش نحوه استفاده از سینک File در Serilog (ذخیره لاگ در فایل) در Asp.net Core

00:09:07
03

آموزش نحوه استفاده از سینک SQL Serverدر Serilog (ذخیره لاگ در SQL Server) در Asp.net Core

00:15:57
04

آموزش نحوه استفاده از سینک Seq در Serilog (ذخیره لاگ در سرور Seq) در Asp.net Core

00:09:14
05

خواندن تنظیمات Serilog از طریق فایل appsettings.json در Asp.net Core

00:14:43

پرسش های متداول

Serilog یک کتابخانه logging ساختاری برای .Net است و به کتابخانه logging ترجیحی برای برنامه های .Net تبدیل شده است.

با توجه به جدول سازگاری، کتابخانه Serilog با نسخه های NET Framework 4.6. و بالاتر سازگار است.

هر دو سینک عالی کار می کنند و به طور فعال نگهداری می شوند. در حالی که NLog گزارش‌گیری ساختاریافته را نیز ارائه می‌کند، به راحتی می‌توان دریافت که Serilog این ویژگی را قبل تر داشته است. اگر امروز بخواهم چارچوب logging سیستم را انتخاب کنم، با Serilog پیش می روم زیرا استفاده از آن بسیار آسان تر است.

آیا استفاده از Serilog بی خطر است؟ پکیج Serilog برای آسیب‌پذیری‌های شناخته شده اسکن شده و هیچ مشکلی پیدا نشده است. بنابراین پکیج Serilog برای استفاده ایمن در نظر گرفته شده است.

بله، ILogger ها در Serilog همیشه برای استفاده همزمان از چندین thread ایمن هستند.

Serilog یک ابزار متن باز با 3.14K ستاره GitHub و 471 فورک GitHub است.

می‌توان از Enricher(غنی‌ کننده‌ ها) برای غنی‌ سازی همه رویدادهای log تولید شده توسط برنامه‌ استفاده کنیم. ما استفاده از Enricher(غنی‌ کننده‌) Log Context را توصیه می کنیم. این غنی‌ کننده که در Serilog تعبیه شده است، اطمینان می‌دهد که هر ویژگی اضافه‌ شده به Log Context به رویدادهای log منتقل می‌شود.

Serilog مفهوم Sinks و log4net دارای appenders است. هر دو نیازهای یکسانی را پوشش می دهند، فقط با نام های متفاوت. سینک‌ها و ضمیمه‌ها برای بسیاری از مقاصد مختلف مانند فایل‌ها، پایگاه‌های داده و سرویس‌های راه دور در دسترس هستند. به عنوان مثال، elmah.io هم یک سینک برای Serilog و هم یک appender برای log4net ارائه می‌کند.

مقالات آموزش برنامه نویسی مدرس

Response Caching در ASP.NET Core

Response Caching یک مکانیزم ذخیره سازی پاسخ سرور توسط مرورگر یا سایر کلاینت ها است. با استفاده از Response Caching در Asp.net Core می توانیم عملکرد و کارایی سیستم را بالا ببریم.

305 0 1402/10/22

Output Caching در ASP.NET Core 8.0

Output Caching یک ویژگی جدید است که از زمان .NET 7 معرفی شده است. این ویژگی به ما این امکان را می دهد که به راحتی یک کش پاسخ برای Web API خود بدون پیاده سازی IMemoryCache راه اندازی کنیم.

354 0 1402/10/14

الگوی طراحی زنجیره مسئولیت در سی شارپ

الگوی زنجیره مسئولیت یا Chain of Responsibility Design Pattern یک الگوی طراحی رفتاری(behavioral design pattern) است که اجازه می‌دهد یک درخواست در امتداد زنجیره‌ای از کنترل‌کننده‌های بالقوه ارسال شود تا زمانی که درخواست مناسب برای پردازش آن را پیدا کند.

338 2 1402/10/01

ViewComponent در ASP.NET Core

در ASP.NET Core با استفاده از ViewComponent ها می توان اجزای ماژولار، قابل استفاده مجدد، قابل نگهداری و مقیاس پذیر برای ساخت برنامه های کاربردی وب ایجاد کرد. در این مقاله به نحوه ایجاد و فراخوانی ViewComponent در Asp.net core پرداخته ایم.

797 2 1402/05/15

تطبیق الگو در NET 7: ساده سازی تجزیه و تحلیل داده ها

تطبیق الگو یا Pattern Matching در net7 یک تکنیک قدرتمند برای تجزیه و تحلیل و دستکاری داده ها بر اساس ساختار آن ها است. تطبیق الگو یا Pattern Matching به توسعه دهندگان اجازه می دهد تا مقادیر را با یک الگوی خاص مطابقت دهند و اقدامات مربوطه را انجام دهند.

480 1 1402/04/05

تزریق وابستگی در ASP.NET Core

تزریق وابستگی (DI) یک الگوی طراحی نرم افزاری است که امکان ایجاد برنامه های کاربردی و ماژولار را فراهم می کند.. در .NET Core تزریق وابستگی یا Dependency injection یک ویژگی مهم است که می تواند برای ساده سازی توسعه برنامه، بهبود تست پذیری و کاهش پیچیدگی کد مورد استفاده قرار گیرد.

1٬161 1 1402/02/04

ضروری ترین کتابخانه های NuGet برای ASP.NET Core

در این مقاله مهمترین،ضروری ترین و پرکاربردترین کتابخانه های NuGet که هر توسعه‌ دهنده‌ ASP.NET Core باید برای توسعه بهتر و کاهش زمان مورد نیاز برای برنامه ‌های خود از آن استفاده کنند را مورد بررسی قرار داده ایم.

1٬113 1 1401/12/29

الگوی طراحی Factory در سی شارپ

الگوهای طراحی یکی از مهمترین جنبه های طراحی و معماری نرم افزار است. Factory Method یک الگوی طراحی ایجادی است که یک رابط برای ایجاد اشیاء در یک سوپر کلاس فراهم می‌کند. ما در این مقاله الگوی Factory Method Design در سی شارپ را بررسی می کنیم.

1٬139 1 1401/10/28

مقایسه List و Array در سی شارپ

آرایه و لیست در سی شارپ هر دو به عنوان مجموعه ای از مقادیر عمل می کنند، اما در نحوه ذخیره محتوای خود در حافظه و نحوه دسترسی به آنها متفاوت هستند. در این مقاله Benchmark و کارایی List<T> با سایز داینامیک، List<T> با سایز ثابت و Array ها را بررسی می کنیم.

1٬657 2 1401/09/01

LinkedList در سی شارپ

LinkedList یا لیست پیوندی در سی شارپ یک ساختار داده خطی است که عنصر را در مکان غیر پیوسته ذخیره می کند. LinkedList شامل گره هایی است که هر گره حاوی یک فیلد داده و یک مرجع (پیوند) به گره بعدی در لیست است. در سی شارپ، LinkedList یا لیست پیوندی یک نوع مجموعه جنریک است.

1٬594 0 1401/08/13

Garbage Collection در دات نت

به طور کلی، Garbage Collection (GC) یا جمع آوری زباله در .Net چیزی نیست جز به دست آوردن مجدد حافظه اختصاص داده شده به اشیایی که در حال حاضر در هیچ بخشی از برنامه ما استفاده نمی شوند. ما در این مقاله Garbage Collection را در سی شارپ بررسی خواهیم کرد.

2٬300 3 1401/03/30

.NET Core چیست؟

.Net (با تلفظ «دات نت») یک چارچوب نرم افزاری کامپیوتری مدیریت شده رایگان و منبع باز برای سیستم عامل های ویندوز، لینوکس و macOS است. این پروژه در درجه اول توسط کارمندان مایکروسافت از طریق دات نت توسعه یافته و تحت مجوز MIT منتشر شده است.

2٬083 2 1401/03/16

پشته(Stack) در سی شارپ

پشته یا Stack در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. پشته یک ساختار داده LIFO یا Last-In-First-Out است، به این معنی که آخرین موردی که در پشته قرار می گیرد اولین موردی است که از پشته خارج می شود.

1٬776 0 1401/03/09

صف (Queue) در سی شارپ

صف (Queue) در سی شارپ یک نوع خطی از ساختار داده است که قادر به ذخیره اشیاء است. Queue یک ساختار داده first-in-first-out یا FIFO است که به این معنی است که اولین مورد اضافه شده به صف اولین موردی است که حذف می شود.

1٬781 0 1401/02/30

تفاوت Hashtable و Dictionary در سی شارپ

در سی شارپ از Hashtable و Dictionary می توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. با این تفاوت که Hashtable و Dictionary عناصر را به عنوان جفت Key/Value ذخیره می کنند.در این مقاله به تفاوت های Hashtable و Dictionary پرداخته شده است.

1٬511 1 1401/02/23

Dictionary در سی شارپ

در سی شارپ از دیکشنری ها (Dictionary) می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Dictionary می تواند عناصر را به عنوان جفت Key/Value ذخیره کند.Key ها باید منحصر به فرد و نمی توانند null باشند. Value ها می توانند تکراری یا null باشند.

1٬835 3 1401/02/17

Hashtable در سی شارپ

از Hashtable می‌توان برای ذخیره مجموعه‌ای از داده‌ها، شبیه به List معمولی استفاده کرد. تفاوت اصلی این است که یک Hashtable می تواند عناصر را به عنوان جفت Key/Value به عنوان جایگزینی برای استفاده از Index ذخیره کند.

1٬475 5 1401/02/14

Redirect درخواست (ریدایرکت) در asp.net core

در برنامه های ASP.NET Core برای تغییر مسیر(ریدایرکت) و Redirect به یک URL خاص روش های مختلفی وجود دارد. در این مقاله با این تکنیک ها و کدهای مورد نیاز برای تغییر مسیر یک درخواست در ASP.NET Core آشنا می شویم.

2٬087 5 1401/02/12

تبدیل enum به لیست انتخابی در asp.net core

در این آموزش ما بوسیله Reflection ها در سی شارپ و asp.net core یک enum را به لیست انتخابی یا SelectListItem تبدیل خواهیم کرد و بوسیله تگ select در بوت استرپ 5 نمایش می دهیم.

1٬500 3 1401/02/03

نحوه ارسال ایمیل در asp و c#

امروزه ارسال ایمیل به امری ضروری در پروژه های وب تبدیل شده است.از ارسال ایمیل در asp می توان در بخش های تایید حساب کاربری،بازیابی رمز عبور،ایمیل مارکتینگ،ارسال خبرنامه و ... استفاده نمود.در این آموزش نحوه ارسال ایمیل در asp core و سی شارپ پیاده سازی گردیده است.

2٬118 5 1401/02/03
نظرات

برای ثبت نظر باید در سایت ثبت نام یا ورود نمایید