scrapy 2.3 自定義日志格式

2021-06-10 17:20 更新

可以通過(guò)擴(kuò)展為不同的操作設(shè)置自定義日志格式 ?LogFormatter? 課程和制作 ?LOG_FORMATTER? 指向你的新班級(jí)。

classscrapy.logformatter.LogFormatter

用于為不同操作生成日志消息的類(lèi)。

所有方法都必須返回一個(gè)列出參數(shù)的字典 level , msg 和 args 調(diào)用時(shí)將用于構(gòu)造日志消息 logging.log .

方法輸出的字典鍵:

  • level 是該操作的日志級(jí)別,可以使用 python logging library : logging.DEBUG , logging.INFO , logging.WARNING , logging.ERROR 和 logging.CRITICAL .

  • msg 應(yīng)該是可以包含不同格式占位符的字符串。此字符串,格式為 args ,將是該行動(dòng)的長(zhǎng)期信息。

  • args 應(yīng)該是一個(gè)tuple或dict,其中的格式占位符為 msg .最后的日志消息計(jì)算為 msg % args .

用戶可以定義自己的 LogFormatter 如果要自定義每個(gè)操作的日志記錄方式,或者希望完全忽略它,則初始化。為了省略記錄操作,該方法必須返回 None .

以下是有關(guān)如何創(chuàng)建自定義日志格式化程序以降低從管道中刪除項(xiàng)時(shí)日志消息的嚴(yán)重性級(jí)別的示例:

class PoliteLogFormatter(logformatter.LogFormatter):
    def dropped(self, item, exception, response, spider):
        return {
            'level': logging.INFO, # lowering the level from logging.WARNING
            'msg': "Dropped: %(exception)s" + os.linesep + "%(item)s",
            'args': {
                'exception': exception,
                'item': item,
            }
        }
crawled(requestresponsespider)

當(dāng)爬蟲(chóng)找到網(wǎng)頁(yè)時(shí)記錄一條消息。

download_error(failurerequestspidererrmsg=None)

記錄來(lái)自spider的下載錯(cuò)誤消息(通常來(lái)自引擎)。

2.0 新版功能.

dropped(itemexceptionresponsespider)

當(dāng)某個(gè)項(xiàng)在通過(guò)項(xiàng)管道時(shí)被丟棄時(shí),記錄該消息。

item_error(itemexceptionresponsespider)

當(dāng)一個(gè)項(xiàng)目在通過(guò)項(xiàng)目管道時(shí)出錯(cuò)時(shí),記錄消息。

2.0 新版功能.

scraped(itemresponsespider)

當(dāng)一個(gè)項(xiàng)目被蜘蛛抓取時(shí)記錄一條消息。

spider_error(failurerequestresponsespider)

記錄來(lái)自spider的錯(cuò)誤消息。

2.0 新版功能.

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)