<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های احمدرضا عرب پور</title><link>https://virgool.ir/feed/@m_22930377</link><description>علاقه مند به یادگیری</description><language>fa</language><pubDate>2026-11-10 19:21:01</pubDate><image><url>https://files.virgool.ir/upload/users/4666914/avatar/rQRFe9.jpg</url><title>احمدرضا عرب پور</title><link>https://virgool.ir/@m_22930377</link></image><item><title>لاگ در جنگو؛ از مبانی تا پروداکشن (بخش اول: چرا لاگ؟)</title><link>https://virgool.ir/@m_22930377/لاگ-در-جنگو-از-مبانی-تا-پروداکشن-بخش-اول-چرا-لاگ-gxgmsn1y4kod</link><description>آیا تا به حال با لاگ ها در برنامه ها و کد های خود کار کرده اید ؟تفاوتی ندارد که شما در حال استفاده از چه زبان برنامه نویسی یا فریم ورک هستید! بخش مهمی از برنامه شما مربوط به لاگ و لاگ گیری میشوددر اینجا در رابطه با چالش خودم در رابطه با لاگینگ و پیاده سازی یک سیستم لاگ در یک پروژه با شما صحبت میکنمقبل از رسیدن به موضوع لاگ گیری در جنگو باید درک درستی از مفهوم و اهمیت لاگ داشته باشیمتصور کنید که شما در حال طراحی و کار روی یک سیستم و نرم افزار Enterprise هستید و قرار هست به صورت تصاعدی کاربران این برنامه بیشتر شوند و این برنامه توسعه پیدا کندو حتی شما ممکن است نرم افزاری داشته باشید که کمتر از صد کاربر را داشته باشد و با کمترین فیچر ها در حال کار کردن باشدباز هم شما به یک سیستم لاگ نیاز دارید !شما باید بتوانید با سیس تم لاگی که پیاده سازی کرده اید با طی کردن ساده ترین روند و در کم ترین زمان ممکن به محتوای مورد نیاز لاگتون برسید و دسترسی داشته باشیدتا بتونید در کم ترین زمان ممکن مشکل تون سیستم تون رو حل کنیداین که محتویات لاگی که میخواهید ثبت کنید چه باشند یکی دیگر از نکاتی هست که باید با حساسیت انتخاب کنیدشما با داشتن یک سیستم لاگ مناسب میتونید یک نرم افزار امن و مورد اطمینان داشته باشیدیکی دیگر از اهداف لاگ MTTR (Mean Time To Recovery/Repair)هستش که به معنی میانگین زمانی هست که طول میکشد سیستم پس از بروز خطا به وضعیت پایدار برگردد.دو مثال و سناریو برای اینکه ضرورت و اهمیت لاگ را بیشتر بفهمیم :۱. سیستم‌های غیرهمگام (Async) و Multi-service:فرض کنید کاربری سفارش خریدی را ثبت می‌کند. درخواست وارد فریم‌ورک وب شده، یک تسک پس‌زمینه در ورکر (مثل Celery) می‌سازد و هم‌زمان درگاه پرداخت را فراخوانی می‌کند. تراکنش با خطا متوقف می‌شود، کاربر پول را پرداخت کرده اما دسترسی برای او ایجاد نشده است. بدون لاگ ساختاریافته، ردگیری هم‌زمان چند سیستم ناممکن است؛ اما با تزریق یک شناسه یکتا (Correlation ID / Trace ID) به تمام مراحل پردازش، می‌توان تمام مسیر این درخواست را در چند ثانیه بازسازی و گلوگاه را شناسایی کرد.۲. مدیریت شکست در وب‌سرویس‌های شخص ثالث (Third-party APIs):تصور کنید ارائه‌دهنده وب‌سرویس پیامک یا احراز هویت شما ناگهان خطای 502 Bad Gateway بازمی‌گرداند. با یک سیستم لاگ بهینه همراه با ذخیره متادیتای پاسخ، پلتفرم‌های مانیتورینگ فوراً افزایش غیرعادی این نرخ خطا را رصد کرده و بدون ایجاد هیاهوی اضافه (Alert Fatigue)، پیش از آنکه کاربران بیشتری متضرر شوند، هشدارهای خودکار را به تیم فنی ارسال می‌کنند.در این سری مقالات، ابتدا از هسته لاگ‌گیری در پایتون (logging)، چالش‌های سطح‌بندی (Log Levels) و ساختاردهی لاگ‌ها (Structured Logging) شروع می‌کنیم و در بخش بعدی به سراغ پیکربندی اختصاصی و عمیق LOGGING در جنگو خواهیم رفت.</description><category>احمدرضا عرب پور</category><author>احمدرضا عرب پور</author><pubDate>Wed, 09 Sep 2026 14:59:26 +0330</pubDate></item></channel></rss>