[英]Logging Python SMTPHandler into emails for CLI SMTP Server
目標是完成 Flask 教程,其中使用 logging.handler.SMTPHandler 將日志從 Python 發送到 SMTP 調試服務器。
Python 服務器在 windows cli 下運行,以管理員身份打開一個新的 windows CLI 並運行:
python -m smtpd -n -c DebuggingServer localhost:1025
要對其進行測試,以下代碼應該可以工作:
import logging
import sys
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
smtpHandler = logging.handlers.SMTPHandler(
mailhost = ("localhost",8025),
fromaddr = "alerts@localhost",
toaddrs = "geo555@localhost",
subject = "alert!"
)
smtpHandler.setLevel(logging.DEBUG)
logger.debug("here is the test logging for u.")
到目前為止已經嘗試過,調試服務器中沒有出現任何消息:
什么可以是一個非常簡單的示例可以做到這一點,否則使用調試文件也可以。 干杯。
我認為您錯過了將 stmpHandler 添加到記錄器: logger.addHandler(smtpHandler)
以下是完整的工作代碼:
import logging
import logging.handlers
import sys
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
sender = "emailuser@localhost"
pwd = "pass123"
smtpHandler = logging.handlers.SMTPHandler(
mailhost=("localhost", 25),
fromaddr="noreply@example.com",
toaddrs="user@email.com",
subject="alert!",
credentials=(sender, pwd),
)
smtpHandler.setLevel(logging.DEBUG)
# add this line
logger.addHandler(smtpHandler)
logger.debug("here is the test logging for u.")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.