He decidido utilizar el módulo de registro de Python porque los mensajes generados por Twisted on std error son demasiado largos, y quiero INFO
mensajes significativos de nivel como los generados por el StatsCollector
que se escribirá en un archivo de registro separado mientras se mantienen los mensajes en pantalla.Scrapy: iniciando sesión en archivo y stdout simultáneamente, con nombres de araña
from twisted.python import log
import logging
logging.basicConfig(level=logging.INFO, filemode='w', filename='buyerlog.txt')
observer = log.PythonLoggingObserver()
observer.start()
Bueno, esto está muy bien, tengo mis mensajes, pero el inconveniente es que no sé los mensajes son generados por el cual la araña! Este es mi archivo de registro, con "trenzado" se visualiza por %(name)s
:
INFO:twisted:Log opened.
2 INFO:twisted:Scrapy 0.12.0.2543 started (bot: property)
3 INFO:twisted:scrapy.telnet.TelnetConsole starting on 6023
4 INFO:twisted:scrapy.webservice.WebService starting on 6080
5 INFO:twisted:Spider opened
6 INFO:twisted:Spider opened
7 INFO:twisted:Received SIGINT, shutting down gracefully. Send again to force unclean shutdown
8 INFO:twisted:Closing spider (shutdown)
9 INFO:twisted:Closing spider (shutdown)
10 INFO:twisted:Dumping spider stats:
11 {'downloader/exception_count': 3,
12 'downloader/exception_type_count/scrapy.exceptions.IgnoreRequest': 3,
13 'downloader/request_bytes': 9973,
En comparación con los mensajes generados a partir de encuadernación en el error estándar:
2011-12-16 17:34:56+0800 [expats] DEBUG: number of rules: 4
2011-12-16 17:34:56+0800 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023
2011-12-16 17:34:56+0800 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080
2011-12-16 17:34:56+0800 [iproperty] INFO: Spider opened
2011-12-16 17:34:56+0800 [iproperty] DEBUG: Redirecting (301) to <GET http://www.iproperty.com.sg/> from <GET http://iproperty.com.sg>
2011-12-16 17:34:57+0800 [iproperty] DEBUG: Crawled (200) <
He intentado% (name) s ,% (módulo) s entre otros, pero parece que no puedo mostrar el nombre de araña. ¿Alguien sabe la respuesta?
EDIT: el problema con el uso de LOG_FILE
y LOG_LEVEL
en la configuración es que los mensajes de nivel inferior no se mostrarán en el error estándar.
donde le has puesto el código? setting.py o código spider? –