Sono in esecuzione di un registro delle Scrapy in questo modo:registrazione a specifici file di log degli errori in 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.
Poi corro il ragno in questo modo:
scrapy crawl myspider
Questo sarebbe memorizzare tutto il registro Dati .INFO e log.ERROR in spider.log
.
Se si verifica un errore, vorrei anche memorizzarli in un file di registro separato chiamato spider_errors.log
. Renderebbe più semplice la ricerca di errori verificatisi piuttosto che cercare di eseguire la scansione dell'intero file spider.log
(che potrebbe essere enorme).
C'è un modo per farlo?
EDIT:
Cercando con 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)
ma ho ERROR: No handlers could be found for logger "twisted"
Dove è 'MySpider' definito? –
@StevenAlmeroth Spiacente, il codice era solo un frammento. L'ho aggiornato per essere più completo. – Bak