【问题标题】:Python multiple LOGGING - Combine Log to EMAIL + Save to the filePython 多个 LOGGING - 将日志组合到 EMAIL + 保存到文件
【发布时间】:2018-10-15 13:05:30
【问题描述】:

我目前正在使用将任何错误发送到电子邮件的日志记录。

#EMAIL AN ERROR
logging.getLogger('googleapiclient.discovery').setLevel(logging.WARNING)
smtp_handler = logging.handlers.SMTPHandler(mailhost=(config.EMAIL_HOST, config.EMAIL_PORT),
                                            fromaddr=config.EMAIL_FROM, 
                                            toaddrs=config.EMAIL_TO, 
                                            subject=config.EMAIL_SUBJECT) 
logger = logging.getLogger()
logger.addHandler(smtp_handler)

添加额外日志记录部分的简洁方法是什么? logger.info("SAMPLE") 到与 python 脚本在同一文件夹中的日志文件?

这是我尝试使用的 basicConfig,但不确定如何将日志记录错误合并到电子邮件和 logger.info() 保存到文件?

#LOGGING TO THE FILE
logging.basicConfig(filename=config.LOG_FILE,
                            filemode='w',
                            format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s',
                            datefmt='%H:%M:%S',
                            level=logging.INFO)

我正在寻找:

1) 所有 logger.info() 都将保存到文件中,但不会通过电子邮件发送。

2) 警告 + 将发送到电子邮件地址并保存到文件中

【问题讨论】:

  • 为什么人们标记为减号?因为没有一个直截了当的答案?

标签: python logging


【解决方案1】:

使用基本的 Python 文件处理技术可以很容易地完成您想要的工作。简而言之,您打开文件,根据需要覆盖或附加到文件,然后在脚本末尾关闭文件。以下是一些可帮助您入门的资源:

https://www.pythonforbeginners.com/cheatsheet/python-file-handling https://docs.python.org/3/tutorial/inputoutput.html(第 7.2 节)

你想要的最终会是这样的:

logfile = open("logging.INFO", "a")
logfile.writelines("Stuff you want to log goes here. \n")
logfile.close

【讨论】:

  • 是的,没错,我知道该怎么做,但这不是干净的方式,根据研究,干净的方式是使用 LOGGING 并且\我不确定如何正确组合它所以它通过电子邮件发送并以我写的方式保存。
  • 没有什么比打开、写入和关闭更干净的了。 :P 这是涉及的最少步骤。我不使用日志记录模块,我总是编写自己的日志记录。
  • 看起来您的应用程序已经内置了一个日志记录方案...但是如果它没有执行您想要的操作,您将不得不编写自己的日志记录。您也许可以添加一个 hack,它只需打开 logging.INFO 并在每次发送电子邮件时写入它。
猜你喜欢
  • 1970-01-01
  • 2017-09-25
  • 2021-06-24
  • 1970-01-01
  • 2015-09-19
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多