मैं ऐसा करके scrapy का एक लॉग चला रहा हूँ में विशिष्ट त्रुटि लॉग फ़ाइल के लिए लॉग इन करना:scrapy
from scrapy import log
class MySpider(BaseSpider):
name = "myspider"
def __init__(self, name=None, **kwargs):
LOG_FILE = "logs/spider.log"
log.log.defaultObserver = log.log.DefaultObserver()
log.log.defaultObserver.start()
log.started = False
log.start(LOG_FILE, loglevel=log.INFO)
super(MySpider, self).__init__(name, **kwargs)
def parse(self,response):
....
raise Exception("Something went wrong!")
log.msg('Something went wrong!', log.ERROR)
# Somehow write to a separate error log here.
तो मैं इस तरह मकड़ी चलाएँ:
scrapy crawl myspider
यह सब लॉग संग्रहीत करेंगे .INFO डेटा के साथ-साथ log.ERROR spider.log
में।
यदि कोई त्रुटि होती है, तो मैं उन विवरणों को spider_errors.log
नामक एक अलग लॉग फ़ाइल में स्टोर करना भी चाहूंगा। यह पूरे spider.log
फ़ाइल (जो कि बहुत बड़ा हो सकता है) के माध्यम से स्कैन करने की कोशिश करने के बजाय हुई त्रुटियों की खोज करना आसान बना देगा।
क्या ऐसा करने का कोई तरीका है?
संपादित करें:
PythonLoggingObserver साथ कोशिश कर रहा है:
def __init__(self, name=None, **kwargs):
LOG_FILE = 'logs/spider.log'
ERR_File = 'logs/spider_error.log'
observer = log.log.PythonLoggingObserver()
observer.start()
log.started = False
log.start(LOG_FILE, loglevel=log.INFO)
log.start(ERR_FILE, loglevel=log.ERROR)
लेकिन मैं ERROR: No handlers could be found for logger "twisted"
'MySpider' कहाँ परिभाषित किया गया है? –
@StevenAlmeroth क्षमा करें, कोड सिर्फ एक स्निपेट था। मैंने इसे और अधिक पूरा करने के लिए अद्यतन किया है। – Bak