2016-07-12 14 views
3

私はhereScrapyログレベルの変更

logging.basicConfig(
    filename='log.txt', 
    format='%(levelname)s: %(message)s', 
    level=logging.CRITICAL 
) 
configure_logging(install_root_handler=False) 
process = CrawlerProcess(get_project_settings()) 

process.crawl('1740') 
process.start() # the script will block here until the crawling is finished 

に示したように、私は私のクモのログレベルを設定したいが、私はルートロガーをインストールしていない場合でも、私のScriptyのからscrapyスパイダーを開始しようとしています私の基本設定をlogging.basicConfigメソッドで設定すると、determindedレベルに従いません。

INFO: Enabled spider middlewares: 
['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 
'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 
'scrapy.spidermiddlewares.referer.RefererMiddleware', 
'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 
'scrapy.spidermiddlewares.depth.DepthMiddleware'] 
INFO: Enabled item pipelines: 
['collector.pipelines.CollectorPipeline'] 
INFO: Spider opened 
INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 

basicConfigでは次の形式とファイル名が使用されますが、ログレベルは使用されません。私はこの場所以外の伐採レベルを決定しません。

注:私はロギングまたはロギングレベルを変更する他の場所はありません。 scrapy自体については

答えて

1

そうsettings.pyに設定できるsettings.pyas described in the docs

にロギング設定を定義する必要があります。

LOG_LEVEL = 'ERROR' # to only display errors 
LOG_FORMAT = '%(levelname)s: %(message)s' 
LOG_FILE = 'log.txt' 
+0

をはい、それはありません。最初;たとえ私がその設定を変更したとしても、stdoutログにのみ適用されます。例えば、LOG_ENABLEDをFalseに変更した場合、stdoutへのログは生成されませんが、main(上)で決定されたファイルに対して生成を継続しています。このアプローチの第2の問題は、それはグローバルな設定です。私はロガーの設定を別々に変更したい。 – guemues

関連する問題