python logging 的乙個簡單的包裝

2021-06-29 02:40:24 字數 977 閱讀 5213

logfile = os.path.join(log_dir, logroot + '.log')

hdlr = logging.handlers.rotatingfilehandler(logfile, maxbytes = 10240000, backupcount = 5)

formatter = logging.formatter('%(asctime)19s %(levelname)-8s %(name)s %(threadname)s %(message)s')

hdlr.setformatter(formatter)

logger.addhandler(hdlr)

logger.setlevel(logging.debug)

def get(root = __file__) :

logroot = getlogroot(root)

if logroot not in loggers : logroot = __file__

return logging.getlogger(logroot)

if __name__ == '__main__' :

init_logging_system()

l = get()

l.warn('testing')

l.debug('this is a debug message')

藍色部分表示每天乙個檔案。適合於定時任務。

綠色部分表示檔案到了10m就自動滾動,適合於後台的服務

日誌的檔名,是__file__去掉副檔名之後的檔名。當然如果傳過來的root引數不是以.py或.pyc結尾,則使用傳過來的值作為檔名。

呼叫時import logger

logger.init_logging_system(root = __file__)

log = logger.get(__file__)

log.debug(......)

log.error(......)

Python logging 的巧妙設計

引言 logging 的基本用法網上很多,這裡就不介紹了。在引入正文之前,先來看乙個需求 假設需要將某功能封裝成類庫供他人使用,如何處理類庫中的日誌?數年前在乙個 c 開發的專案中,我用了這樣的方法 定義乙個 logging 基類,所有需要用到日誌的類都繼承這個基類,這個基類中定義乙個 loghan...

python logging 最佳實踐

建立乙個logger,這裡的級別debug是總開關,控制了下面file 和console handler的級別 logger logging.getlogger logger.setlevel logging.debug 建立乙個handler,用於寫入日誌檔案,並定義輸出格式 fh logging...

Python logging模組學習

import logging 日誌級別列表,預設為logging.warning levels logging.notset,logging.debug,logging.info,logging.warning,logging.error,logging.critical log format as...