如何在Python Logger中设置datetime固定值作为结果?
我正在为我的应用程序创建一些结构化日志,我想检查它的输出。对于日志记录,我使用Python默认记录器和pytests进行测试(在本项目中,unittest不是一个选项)。 我想根据一个固定的文本断言我从日志中获得的输出,为了这样做,我需要有一个固定的日期时间。但不管我做什么,我都不能覆盖Python记录器datetime。为了进行正确的测试,如何模拟从python记录器获得的日期时间 更新 它不是我需要的格式化程序,我实际上需要在运行测试时始终将预期的日期时间作为结果。因此,我调用记录器多少次,它总是以相同的Datetime值响应,例如:如何在Python Logger中设置datetime固定值作为结果?,python,python-3.x,Python,Python 3.x,我正在为我的应用程序创建一些结构化日志,我想检查它的输出。对于日志记录,我使用Python默认记录器和pytests进行测试(在本项目中,unittest不是一个选项)。 我想根据一个固定的文本断言我从日志中获得的输出,为了这样做,我需要有一个固定的日期时间。但不管我做什么,我都不能覆盖Python记录器datetime。为了进行正确的测试,如何模拟从python记录器获得的日期时间 更新 它不是我需要的格式化程序,我实际上需要在运行测试时始终将预期的日期时间作为结果。因此,我调用记录器多少次,
2001-01-01
希望有帮助
def sim_time(self, record, datefmt=None):
return datetime.datetime(2000,1,2,3,4,5,678).strftime('%Y-%m-%d %H:%M:%S,%f')[:-3]
import logging
logging.Formatter.formatTime = sim_time
创建一个新的格式化程序
#创建格式化程序
formatter=logging.formatter(“%(asctime)s;%(levelname)s;%(message)s”,
%Y-%m-%d%H:%m:%S)
请参见谢谢,但这不是日期时间格式,而是日期时间值。