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...