Scrapy Logging:以不同方式格式化 statscollectors 时间戳
Scrapy Logging: Format statscollectors timestamps differently
当一个标准的 scrapy 蜘蛛完成它的爬行时,它会使用 statscollectors 模块记录抓取的摘要,看起来像这样(截断):
2021-03-21 15:11:16 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 4,
'elapsed_time_seconds': 91125.763498,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2021, 3, 21, 14, 11, 6, 806324),
'item_scraped_count': 30395,
'log_count/ERROR': 4,
'log_count/INFO': 574,
'log_count/WARNING': 38,
'start_time': datetime.datetime(2021, 3, 20, 12, 52, 21, 42826)}
我想以不同方式设置 start_time
和 end_time
值的格式,以便更轻松地将我的日志文件作为监视管道的一部分进行处理。例如,
datetime.datetime(2021, 3, 21, 14, 11, 6, 806324)
=> 2021-03-21 14:11:06.806324
.
无论如何我都看不到要在 logging settings 中更改它。知道如何影响 statscollectors 模块的格式吗?
这不是很明显,但是你可以在你的蜘蛛上定义一个 closed
函数,它会在蜘蛛关闭时执行,你可以通过 [=13= 访问 stats
].您可以像这样使用它来记录 start/end 次
def closed(self, reason):
self.logger.info("Start time: %s", self.crawler.stats.get_value("start_time"))
self.logger.info("End time: %s", self.crawler.stats.get_value("start_time"))
如果您想在最后关闭统计数据转储,那么可以使用 STATS_DUMP
设置
来完成
当一个标准的 scrapy 蜘蛛完成它的爬行时,它会使用 statscollectors 模块记录抓取的摘要,看起来像这样(截断):
2021-03-21 15:11:16 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/exception_count': 4,
'elapsed_time_seconds': 91125.763498,
'finish_reason': 'finished',
'finish_time': datetime.datetime(2021, 3, 21, 14, 11, 6, 806324),
'item_scraped_count': 30395,
'log_count/ERROR': 4,
'log_count/INFO': 574,
'log_count/WARNING': 38,
'start_time': datetime.datetime(2021, 3, 20, 12, 52, 21, 42826)}
我想以不同方式设置 start_time
和 end_time
值的格式,以便更轻松地将我的日志文件作为监视管道的一部分进行处理。例如,
datetime.datetime(2021, 3, 21, 14, 11, 6, 806324)
=> 2021-03-21 14:11:06.806324
.
无论如何我都看不到要在 logging settings 中更改它。知道如何影响 statscollectors 模块的格式吗?
这不是很明显,但是你可以在你的蜘蛛上定义一个 closed
函数,它会在蜘蛛关闭时执行,你可以通过 [=13= 访问 stats
].您可以像这样使用它来记录 start/end 次
def closed(self, reason):
self.logger.info("Start time: %s", self.crawler.stats.get_value("start_time"))
self.logger.info("End time: %s", self.crawler.stats.get_value("start_time"))
如果您想在最后关闭统计数据转储,那么可以使用 STATS_DUMP
设置