ich tun dies ein Protokoll der scrapy leite:Protokollierung auf bestimmte Fehlerprotokolldatei 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.
Dann laufe ich die Spinne so:
scrapy crawl myspider
Dies alles das Protokoll gespeichert werden soll .INFO-Daten sowie log.ERROR in spider.log
.
Wenn ein Fehler auftritt, möchte ich diese Details auch in einer separaten Protokolldatei mit der Bezeichnung speichern. Es würde es einfacher machen, nach aufgetretenen Fehlern zu suchen, anstatt zu versuchen, die gesamte spider.log
Datei zu durchsuchen (was sehr groß sein könnte).
Gibt es eine Möglichkeit, dies zu tun?
EDIT:
mit PythonLoggingObserver Versuch:
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)
Aber ich bekomme ERROR: No handlers could be found for logger "twisted"
Wo ist 'MySpider' definiert? –
@StevenAlmeroth Sorry, der Code war nur ein Ausschnitt. Ich habe es aktualisiert, um vollständiger zu sein. – Bak