私はscrapyを使用しています、私のscrapyプロジェクトでは、私は、いくつかのクモのクラスを作成した私は、ログファイル名を指定するには、この方法を使用:今すぐスパイダーの名前でログファイル名を指定する方法は?公式文書が言ったように
def logging_to_file(file_name):
"""
@rtype: logging
@type file_name:str
@param file_name:
@return:
"""
import logging
from scrapy.utils.log import configure_logging
configure_logging(install_root_handler=False)
logging.basicConfig(
filename=filename+'.txt',
filemode='a',
format='%(levelname)s: %(message)s',
level=logging.DEBUG,
)
Class Spider_One(scrapy.Spider):
name='xxx1'
logging_to_file(name)
......
Class Spider_Two(scrapy.Spider):
name='xxx2'
logging_to_file(name)
......
、私はSpider_One
を開始した場合、すべてのものを正解です!しかし、Spider Two
を起動すると、Spider Two
のログファイルの名前はSpider One
となります!
Googleとstackoverflowから多くの回答を検索しましたが、残念ながら誰も働いていませんでした。
私はPython 2.7 &の治療法1.1を使用しています!
誰でも私を助けることを願っています!
昨日、各スパイダーの '__init__'メソッドに' logging_to_file'関数を移動しようとしましたが、そうした場合、ログファイルは作成されません。 – nick
@nickあなたはどのようにあなたのクモを実行していますか? 'scrapy crawl spider_name'で実行している場合には、他のスパイダーの' logging_to_file'に到達する方法はありません – Granitosaurus
はい、私は本当に 'spider_crawl spider_name'コマンドを使って自分のスパイダーを実行しています!! @ Granitosaurus – nick