logging模塊的使用步驟

#coding: GB2312 
def initlog():
    import logging
    # 生成一個日誌對象     
    logger = logging.getLogger()
    # 生成一個Handler。logging支持許多Handler
    # 象FileHandler, SocketHandler, SMTPHandler等,我因爲要寫
    # 文件就使用了FileHandler。
    # logfile是一個全局變量,它就是一個文件名,如:'crawl.log'
    logfile = 'test.log'
    hdlr = logging.FileHandler( logfile )
    # 成一個格式器,用於規範日誌的輸出格式。若是沒有這行代碼,那麼缺省的
    # 格式就是:"%(message)s"。也就是寫日誌時,信息是什麼日誌中就是什麼
    # 沒有日期,沒有信息級別等信息。logging支持許多種替換值,詳細請看
    # Formatter的文檔說明。這裏有三項:時間,信息級別,日誌信息1
    formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
    # 將格式器設置處處理器上
    hdlr.setFormatter(formatter)
    # 將處理器加到日誌對象上
    logger.addHandler(hdlr)
    # 設置日誌信息輸出的級別。logging提供多種級別的日誌信息,如:NOTSET,
    # DEBUG, INFO, WARNING, ERROR, CRITICAL等。每一個級別都對應一個數值。
    # 若是不執行此句,缺省爲30(WARNING)。能夠執行:logging.getLevelName
    # (logger.getEffectiveLevel())來查看缺省的日誌級別。日誌對象對於不一樣
    # 的級別信息提供不一樣的函數進行輸出,如:info(), error(), debug()等。當
    # 寫入日誌時,小於指定級別的信息將被忽略。所以爲了輸出想要的日誌級別必定
    # 要設置好此參數。這裏我設爲NOTSET(值爲0),也就是想輸出全部信息
    logger.setLevel(logging.NOTSET)
    return logger
logging=initlog()
logging.info('註冊')

經過以上例子我的總結:html

初始化一個寫文件的log對象的步驟:python

1.先生成一個logger 對象:函數

logger = logging.getLogger()debug

2.生成一個處理器Hander:日誌

hdlr = logging.FileHandler( file )code

file: 能夠是帶路徑的全文件路徑,如:「D://logs//test.log」orm

3.生存格式器制定輸出日誌格式:htm

formatrer = logging.Formatter('%(asctime)s %(levelname)s %(message)s')對象

格式字符:blog

 4.將格式器綁定處處理器Hander上:

hdlr.setFormatter(formatter)

5.將處理器Hander添加到log對象上

logger.addHandler(hdlr)

6.根據實際狀況設置日誌級別

logger.setLevel(logging.NOTSET)

若想支持的級別多點,最好設置的級別低點。

 

具體方法及使用講解,參見:

http://blog.sina.com.cn/s/blog_8697aaed010196sx.html

相關文章
相關標籤/搜索