Sto tentando di utilizzare il modulo logging
di Python per inviare e-mail contenenti i registri. Il problema che sto avendo è che ogni volta che scrivo una voce di log, viene inviata un'email. Come faccio ad accodare i messaggi di log e inviare una singola email al termine dello script?SMTPHandler nel modulo di registrazione di Python che invia email una alla volta. Come posso fermarlo?
Ho la sensazione che sia fatto con il metodo emit()
, ma non riesco a capire come usarlo.
import logging, logging.handlers
log = logging.getLogger("mylogger")
log.setLevel(logging.DEBUG)
h2 = logging.handlers.SMTPHandler(mailhost='mailserver',
fromaddr='[email protected]',
toaddrs=['[email protected]'],
subject='The log',
credentials=('user','pwd'),
secure=None)
h2.setLevel(logging.INFO)
h2.setFormatter(f)
log.addHandler(h2)
log.info("Did something")
log.info("Did something else")
log.info("This would send a third email. :-(")
@VinaySajip - quali sono i tuoi pensieri su utilizzando il modulo smtplib per inviare messaggi di posta elettronica, invece.. ? – codingknob
@ algotr8der - È possibile vedere dal gestore di esempio che effettivamente usa 'smtplib' per inviare le e-mail. –