Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何设置Scrapy项目的RotatingFileHandler(或最大大小)_Python_Logging_Scrapy - Fatal编程技术网

Python 如何设置Scrapy项目的RotatingFileHandler(或最大大小)

Python 如何设置Scrapy项目的RotatingFileHandler(或最大大小),python,logging,scrapy,Python,Logging,Scrapy,我试图确保日志文件不会超过1048576字节。由于Scrapy使用pythonlogging模块,因此我尝试将Scrapy的默认FileHandler更改为RotatingFileHandler 我在Scrapy文档或设置中找不到任何关于此的内容。我的想法是重写spider的\uuuu init\uuu()方法(我有一个spider) 但是scrapy会在spider初始化之前记录数据 2017-10-26 13:16:15 [scrapy.utils.log] INFO: Scrapy 1.4

我试图确保日志文件不会超过1048576字节。由于Scrapy使用python
logging
模块,因此我尝试将Scrapy的默认
FileHandler
更改为
RotatingFileHandler

我在Scrapy文档或设置中找不到任何关于此的内容。我的想法是重写spider的
\uuuu init\uuu()
方法(我有一个spider)

但是scrapy会在spider初始化之前记录数据

2017-10-26 13:16:15 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: engine_bot)
2017-10-26 13:16:15 [scrapy.utils.log] INFO: Overridden settings:
....
是否有办法使此功能正常工作或设置Scrapy默认日志文件的最大大小?

您必须使用
install\u root\u handler=False调用,如中所述

通过这种方式,您将登录到控制台(根据
basicConfig
默认设置;但是,可以删除此处理程序)和旋转文件。

您必须使用
install\u root\u handler=False调用,如中所述

通过这种方式,您将登录到控制台(根据
basicConfig
默认设置;不过,可以删除此处理程序)和旋转文件

2017-10-26 13:16:15 [scrapy.utils.log] INFO: Scrapy 1.4.0 started (bot: engine_bot)
2017-10-26 13:16:15 [scrapy.utils.log] INFO: Overridden settings:
....
import logging
from logging.handlers import RotatingFileHandler

from scrapy.utils.log import configure_logging


# Disable default Scrapy log settings.
configure_logging(install_root_handler=False)

# Define your logging settings.
log_format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
log_level = logging.INFO  # Or better yet get `LOG_LEVEL` from settings.
log_file = 'log.log'  # Or better yet get `LOG_FILE` from settings.

logging.basicConfig(
    format=log_format,
    level=log_level
)

rotating_file_log = RotatingFileHandler(log_file, maxBytes=1024, backupCount=1)
rotating_file_log.setFormatter(logging.Formatter(log_format))

root_logger = logging.getLogger()
root_logger.addHandler(rotating_file_log)