- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我设置了日志记录模块 MemoryHandler 来排队 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, 'errors@'+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)
与此相关:
如果 error_mail_handler
是 memory_handler
的目标,我是否需要将它显式添加到记录器中?error_mail_handler
应该设置为 DEBUG 还是 ERROR 目标?当它从 memory_handler
被馈送时,它甚至需要一个目标吗?
希望看到任何解决此问题的人提供的一些工作代码。
最佳答案
您可能想要使用或调整 this test script 中的 BufferingSMTPHandler
.
一般来说,如果它是已添加到记录器的 MemoryHandler 处理程序的目标,则不需要将处理程序添加到记录器。如果您设置处理程序的级别,这将影响处理程序实际处理的内容 - 它不会处理任何比其级别设置更轻的内容。
关于python - 使用 SMTPHandler 在 Python logging MemoryHandler 中整理输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610845/
我正在尝试将 python MemoryHandler 添加到日志记录配置文件中。我正在使用与之前工作的文件处理程序类似的结构。我对收到的错误有点困惑,并且无法弄清楚我缺少什么才能将日志记录保存到内存
Python 的 logging模块有一个缓冲处理程序,MemoryHandler . 它需要一个capacity 参数。 容量的单位是什么? 最佳答案 缓冲区的容量是它可以容纳的条目数。每个条目代表
当记录到 MemoryHandler 时,当 numofentries > size 时,MemoryHandler 会删除旧条目。 我想避免这种行为,或者至少在日志中标记旧条目被抑制。 小测试用例:
我想在特定阈值后记录我的应用程序的消息。 10 条消息后说。我阅读了内存处理程序并使用了它。但是我发现它会立即记录消息,而不是像文档中所说的那样缓冲它们。这是代码 Handler h = new Fi
我找不到足够的文档来让它工作。我有非长时间运行的进程,这些进程在 stderr 上显示进度信息并使用 stdout 进行输出。我想要的是日志消息在进程退出时全部显示在最后,而且它也应该记录到一个文件中
我设置了日志记录模块 MemoryHandler 来排队 SMTPHandler 目标的调试和错误消息。我想要的是当包含所有调试语句的过程错误时发送一封电子邮件(每行一个)。相反,我得到的是每条调试消
我是一名优秀的程序员,十分优秀!