<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های سپیده دلیرپور</title>
        <link>https://virgool.io/feed/@m_22175382</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-17 00:02:48</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2930543/avatar/wzJaJZ.jpg?height=120&amp;width=120</url>
            <title>سپیده دلیرپور</title>
            <link>https://virgool.io/@m_22175382</link>
        </image>

                    <item>
                <title>Structure Logging with Serilog</title>
                <link>https://virgool.io/@m_22175382/structure-logging-with-serilog-fp9bhnu5wn6y</link>
                <description>Serilogتعریففریم ورک open source  هست که در دات نت برای عملیات logging استفاده می شود ،  یک فریم ورک منعطف و موثر که لاگ ها رو می گیرد و آن ها را در فرمت های مختلف در دیتابیس ، فایل یا سرویس های خارجی  به صورت ساختار یافته و حالت (key-value) ذخیره می کند و  نسبت به فریم ورک هایی که به این منظور استفاده می شود جدیدتر است و نیاز به config خاصی برای نمایش ندارد.مانند بسیاری از کتابخانه های دیگر برای دات نت، Serilog امکان ثبت لاگ درون فایل، محیط کنسول، دیتابیس و جاهای دیگر با فرمت Json را فراهم می کند. راه اندازی  Serilog  بسیار آسان است و قابل استفاده در اکثر پلتفرم های دات نت می باشد.ویژگی های اصلی استفاده از logging api برای پشتیبانی از6 سطح مختلف لاگ Fatal : مربوط به خطاهایی است که برنامه را shutdown می کند (Forcing Shutdown) Error: مربوط به مشکلات جدی است که در طول اجرای برنامه اتفاق می افتد (during Execution) Warning : مربوط به گزارش مواردی که critical نیستند.(non-critical) Information : اطلاع رسانی پیغام هایی که پیشرفت برنامه را کاربر یا مدیر سیستم نمایش می دهد. Debug : اطلاعات مربوط به دیباگ سیستم (extended information)Verbose : برای رهگیری کد اطلاعاتی نمایش می دهد (tracing the code) اولویت بندی و سطح بندی لاگ ها بر اساس شدت و اهمیت با استفاده از سطوح مختلف لاگ یگپارچگی راحت با ابزارهایی مثل Seq , Elastic Search Override logger پشتیبانی از انواع SinkSink : ذخیره پیغام ها در storage  با فرمت های مختلفSerilog برای نوشتن لاگ رویدادها در قالب های مختلف ذخیره سازی sink هایی را ارائه می دهد. این sink ها توسط جامعه گستردهSerilog توسعه یافته و پشتیبانی می شوند. که به صورت استاندارد داخل فایل یا کنسول ذخیره می شود.از معروف ترین sink های Serilog می توان به موارد زیر اشاره کرد: مثال هایی از sink ها که با Serilog  پیاده شده اند Serilog.sinks.File Serilog.sinks.Telegram Serilog.Sinks.MongoDb Serilog.Sinks.ElasticSearch Serilog.Sinks.SeqLogs in seqSeq یک سرور جستجو ، تحلیل و هشدار است که برای لاگ کردن دیتای مدرن و ساختار یافته استفاده می شود .  برای پیاده سازی آن باید nugget  ان را به پروژه اضافه می کنیم و config مربوط به ان را در appsetting اضافه می کنیم که در آن محل ذخیره سازی لاگ نیز مشخص می شودSeq ویژگی های زیادی دارد که یکی از مهمترین مشخصه آن وجود داشبورد است که errors/exceptions/events را به صورت گرافیکی زیبا نمایش می دهد.Logs in ELK using serilog یک  ELK موتور متن باز و ساختار یافته برای جستجو و تحلیل دیتاهای بزرگ استفاده می شودپکیج مربوط به آن را برای پیاده سازی اضافه می کنیم و config لازم را اضافه می کنیمساختار؟در گذشته پیغام های لاگ به صورت string هست اما Serilog به صورت ساختار یافته نمایش داده می شود  و با فرمت Json هم نمایش داده می شود.مزایای ساختاری بودنخوانایی بالاتحلیل و فیلتر راحت تر دیتاهاآنالیز راحت تر لاگ ها در زمان دیباگ و troubleshootingساختار SerilogException : شامل پیغام      خطا و stack trace  (نحوه رهگیری) ، در صورتی که خالی باشد ExceptionEmpty نمایش داده      می شود.Level : سطح لاگ را      نمایش می دهدMessage :پیغام مربوط به اتفاقی که رخ داده      به صورت متن ساده یا در حالت Json نمایش داده می شودProperties  مقادیر مربوط به property ها که در خروجی نمایش داده می شودTimestamp : زمان ایجاد لاگ.پیاده سازی1. نصب پکیج های زیر2. Config project3. Add Iserilog to controllerمنابعhttps://satyampushkar.medium.com/serilog-logging-to-console-seq-elasticsearch-file-using-dotnet6-d9536b534209https://code-maze.com/structured-logging-in-asp-net-core-with-serilog/https://serilog.net/</description>
                <category>سپیده دلیرپور</category>
                <author>سپیده دلیرپور</author>
                <pubDate>Sat, 04 Nov 2023 20:18:32 +0330</pubDate>
            </item>
                    <item>
                <title>ویژگی های Hangfire</title>
                <link>https://virgool.io/@m_22175382/%D9%88%DB%8C%DA%98%DA%AF%DB%8C-%D9%87%D8%A7%DB%8C-hangfire-ceqcdrhtr04q</link>
                <description>یک فریم ورک opensource که هدفش ایجاد و مدیریت و پردازش background job هاست و پیاده سازی راحتی دارد.که در .Net و برنامه های .Net ی استفاده می شود.انواع Background Job ها Fire and forgetمنظور job ی هست که تنها یک بار و فوری اجرا می شود Delayedمنظور job ی که تنها یکبار اجرا میشه ولی فوری نیست بلکه بعد از یک وقفه ای اتفاق می افتدRecurringمنظور  job ی است  که طی یک زمانبندی و دفعات زیاد اتفاق می افتد Continuationsوقتی job والد تموم می شه این job اجرا میشهBatchesیه گروه job  هستند که به صورت اتوماتیک ایجاد می شوندBatch Continuationsوقتی اجرا می شود که همه background job  ها که در parentهستند تمام شوندچرا به Background process نیاز داریمتا بتوانیم در طول عمر یه application  کارهایی که لازم هست رو به صورت background  انجام بدیم.انواع storage در HangFire  این جاب ها بسیار مهم هستند و هنگ فایر مطمئن میشه که یه جاب حداقل یه بار اجرا شده و تمام اطلاعات مربوط به background job در یک دیتابیس مطمئن ذخیره میشه و انواع storage  هایی که پشتیبانی می کنهSqlserver, Redis ,In-Memory(Preview) , NoSqlویژگی های HangFireAutomatic Retriesاگر مشکلی پیش بیاد در طول اجرا ، با یه تاخیری اتومات خودش ان را اجرا می کنه و از موارد زیر جلوگیری می کندExceptionsApplication shutdownsUnexpected process terminationsIntegrated Monitoring UIبا استفاده از owin extension  یه سیستم مانیتورینگ رو ایجاد کرده است و نیاز به معماری خاصی برای پیاده سازی ندارد. با یه تنظیم راحت می شه اون را استفاده کرد.Delayed Method Invocationمی توان به جای اینکه ترد رو همان موقع اجرا کنیم اون رو به تعویق بندازیم  ، به جای اینکه انها توی صف برای اجرا قرار بگیرند اجراشون زمانبندی می شودQueue-based Processingبه جای اجرای همزمان متدها آنها را در یک صف قرار می دهد و worker مربوط به hangfire اون ها را اجرا می کندDelayed Method Invocationمی توان به جای اینکه ترد رو همان موقع اجرا کنیم اون رو به نعویق بندازیم  ، به جای اینکه انها توی صف برای اجرا قرار بگیرند اجراشون زمانبندی می شودMultiple Queue Processingبه صورت همزمان می تونه چندین صف رو اجرا کنه که می تونیم برای اجرای اون اولویت بندی کنیمProcess Jobs AnywhereASP.NET application. console application, Windows Service, or anywhere else.https://www.hangfire.io/</description>
                <category>سپیده دلیرپور</category>
                <author>سپیده دلیرپور</author>
                <pubDate>Mon, 23 Oct 2023 21:06:29 +0330</pubDate>
            </item>
            </channel>
</rss>