Tôi đã quyết định sử dụng mô-đun ghi nhật ký Python vì các thông báo được tạo bởi Twisted on std error quá dài và tôi muốn các thông báo có ý nghĩa ở mức INFO
. bởi các StatsCollector
được viết trên một tệp nhật ký riêng biệt trong khi duy trì các thông báo trên màn hình.Phế liệu - đăng nhập vào tệp và stdout đồng thời, với tên nhện
from twisted.python import log
import logging
logging.basicConfig(level=logging.INFO, filemode='w', filename='buyerlog.txt')
observer = log.PythonLoggingObserver()
observer.start()
Vâng, điều này là tốt, tôi đã nhận được thư của mình, nhưng nhược điểm là tôi không biết thư được tạo ra bởi con nhện nào! Đây là tập tin đăng nhập của tôi, với "xoắn" được trình bày bởi %(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,
So với các thông điệp được tạo ra từ xoắn trên sai số chuẩn:
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) <
tôi đã cố gắng% (name) s ,% (module) s trong số những người khác nhưng tôi dường như không thể hiển thị tên nhện. Có ai biết câu trả lời không?
EDIT: vấn đề với việc sử dụng LOG_FILE
và LOG_LEVEL
trong cài đặt là những thông điệp cấp thấp hơn sẽ không được hiển thị trên lỗi std.
nơi mà bạn đã đặt mã của bạn? setting.py hoặc mã nhện? –