2025, Oct 02 01:32
Django runserver में ऑटोरिलोड लॉगिंग का 'first seen with mtime' स्पैम कैसे रोकें
Django runserver पर 'first seen with mtime' जैसी लॉग बाढ़ से छुटकारा पाएं: settings.py में django.utils.autoreload का level INFO करें और कंसोल पढ़ने योग्य रखें
जब आप Django का डेवलपमेंट सर्वर चलाते हैं, तो “first seen with mtime …” जैसे संदेशों की अनचाही बाढ़ टर्मिनल को भर सकती है। टेम्पलेट्स और Python मॉड्यूल स्कैन होते समय आउटपुट झटकों में आता है, जिससे असली त्रुटियां या स्टार्टअप संदेश नजर से छूट जाते हैं। अच्छी खबर यह है कि यह कोई बाहरी वॉचर या रहस्यमयी बैकग्राउंड टास्क नहीं है — यह Django के ऑटोरिलोडर के लिए आपकी लॉगिंग कॉन्फ़िगरेशन का असर है।
समस्या कैसी दिखती है
जैसे ही आप dev सर्वर शुरू करते हैं, समस्या दिखने लगती है:
python manage.py runserverइसके बाद कंसोल इस तरह की प्रविष्टियों से भर जाता है:
File C:\Users\PC\OneDrive\Documents\DoseSaaS\DoseV3MasterSaaS\templates\admin\dose\tenant\change_list.html
first seen with mtime 1754471094.0ऐसी दर्जनों, कभी‑कभी सैकड़ों पंक्तियां आ सकती हैं, और काम की सूचनाएं दब जाती हैं।
यह क्यों होता है
यह शोरगुल वाला आउटपुट Django के आंतरिक ऑटोरिलोड सबसिस्टम से जुड़े लॉगर से आता है। यही सबसिस्टम डेवलपमेंट के दौरान फ़ाइल परिवर्तनों का पता लगाता है और सर्वर को रीलोड करता है। अगर लॉगर बहुत वर्बोज़ स्तर पर सेट है, तो वह हर वॉच की जा रही फ़ाइल के लिए एक‑एक लाइन छापेगा — “first seen with mtime …” जैसी प्रविष्टियों सहित — और टर्मिनल practically अप्रयोगी हो जाएगा। इसका कारण कोई थर्ड‑पार्टी वॉचर नहीं है और न ही यह Django की खामी दर्शाता है; असल में यह आपकी settings में django.utils.autoreload के लॉगर की कॉन्फ़िगरेशन का नतीजा है।
समाधान
settings.py में django.utils.autoreload लॉगर का लॉग स्तर घटा दें ताकि कंसोल स्पैम न हो। इसे INFO पर रखना काफ़ी है — फ़ाइलों की गिनती वाला शोर शांत हो जाएगा, जबकि ज़रूरी संदेश दिखते रहेंगे। नीचे दिए अनुसार लॉगर कॉन्फ़िगरेशन जोड़ें या अपडेट करें:
LOGGING = {
...
"django.utils.autoreload": {
"level": "INFO",
# ... अन्य लॉगर विकल्प (यदि मौजूद हों)
},
...
}यह बदलाव करने के बाद डेवलपमेंट सर्वर रीस्टार्ट करें। ऑटोरिलोडर पहले की तरह काम करता रहेगा, लेकिन टर्मिनल अब “first seen with mtime …” से नहीं भर जाएगा।
यह जानना क्यों ज़रूरी है
बेहिसाब चैटी लॉगिंग डेवलपमेंट के दौरान उन संकेतों को ढक देती है जो सच में मायने रखते हैं: स्टार्टअप त्रुटियां, चेतावनियां और प्रासंगिक डिबग संदेश। यह समझना कि ये संदेश django.utils.autoreload से आते हैं, आपको शोर को स्रोत पर ही नियंत्रित करने देता है — बिना ऑटो‑रिलोड जैसी उपयोगी सुविधा बंद किए या कंसोल को पूरी तरह छिपाए।
निष्कर्ष
अगर runserver चलाते समय टर्मिनल फ़ाइल‑स्कैन प्रविष्टियों से भर रहा है, तो पहले अपनी लॉगिंग सेटअप पर नज़र डालें। django.utils.autoreload का स्तर INFO पर ट्यून करने से ऑटो‑रिलोड चलता रहता है और कंसोल पढ़ने योग्य बना रहता है। लॉगिंग को लक्षित और संतुलित रखें, ताकि डेवलपमेंट फीडबैक लूप तेज़ और साफ़ बना रहे।