के साथ मेमोरी हैंडलर मेरे पास लॉगिंग मॉड्यूल मेमोरी हैडलर एसएमटीपी हैंडलर लक्ष्य के लिए डीबग और त्रुटि संदेशों को कतारबद्ध करने के लिए सेट है। मैं चाहता हूं कि एक ईमेल के लिए भेजा जाए जब प्रक्रिया त्रुटियों जिसमें उस बिंदु तक सभी डीबग स्टेटमेंट शामिल हों (प्रति पंक्ति एक)। इसके बजाय मुझे जो भी मिलता है वह प्रत्येक डीबग संदेश के लिए एक अलग ईमेल है।पायथन लॉगिंग में कोलेट आउटपुट SMTPHandler
ऐसा लगता है कि यह छोटा होना चाहिए, और लॉगिंग पैकेज का हिस्सा होना चाहिए, लेकिन मुझे इसके बारे में कुछ भी नहीं मिला, कोई उदाहरण नहीं, Google पर कुछ भी नहीं।
log = logging.getLogger()
log.setLevel(logging.DEBUG)
debug_format = logging.Formatter("%(levelname)s at %(asctime)s in %(filename)s (line %(lineno)d):: %(message)s")
# write errors to email
error_mail_subject = "ERROR: Script error in %s on %s" % (sys.argv[0], os.uname()[1])
error_mail_handler = logging.handlers.SMTPHandler(SMTP_HOST, '[email protected]'+os.uname()[1], [LOG_EMAIL], error_mail_subject)
error_mail_handler.setLevel(logging.ERROR)
#error_mail_handler.setLevel(logging.DEBUG)
error_mail_handler.setFormatter(debug_format)
# buffer debug messages so they can be sent with error emails
memory_handler = logging.handlers.MemoryHandler(1024*10, logging.ERROR, error_mail_handler)
memory_handler.setLevel(logging.DEBUG)
# attach handlers
log.addHandler(memory_handler)
log.addHandler(error_mail_handler)
संबंधित इस के लिए:
मैं लकड़हारा स्पष्ट रूप से अगर यह memory_handler
का लक्ष्य वैसे भी है error_mail_handler
जोड़ने की जरूरत है? error_mail_handler
को DEBUG या ERROR लक्ष्य पर सेट किया जाना चाहिए? क्या इसे memory_handler
से खिलाया जा रहा है जब भी इसे एक लक्ष्य की आवश्यकता है?
इस समस्या को हल करने वाले किसी भी व्यक्ति से कुछ कामकाजी कोड देखना अच्छा लगेगा।
ग्रेट सामान। यह मॉड्यूल के लेखक द्वारा आपके प्रश्न का उत्तर हर दिन नहीं मिलता है! – SpliFF
@ विनीजजिप - इसके बजाय ईमेल भेजने के लिए smtplib मॉड्यूल का उपयोग करने के बारे में आपके विचार क्या हैं? – codingknob
@ algotr8der - आप लिंक (अब अपडेट किए गए) से देख सकते हैं कि स्क्रिप्ट वास्तव में ईमेल भेजने के लिए 'smtplib' का उपयोग करती है। –