logging模块
?
import logging from conf import settingsdef logger(log_type):# 生成 logger 對象logger = logging.getLogger(log_type)logger.setLevel(settings.LOG_LEVEL)# 生成handler對象,向文件輸出日志信息log_file = "%s/log/%s.log" % (settings.BASE_DIR, log_type)global fhfh = logging.FileHandler(log_file)fh.setLevel(settings.LOG_LEVEL)# 生成formatter對象formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')# formatter對象綁定到handler對象 fh.setFormatter(formatter)if logger.handlers: # 清空logger.handlers,否則會重復打印日志 logger.handlers.pop()# handler對象綁定到logger logger.addHandler(fh)return loggerlogger.py
?
%(name)s Logger的名字 %(levelno)s 數字形式的日志級別 %(levelname)s 文本形式的日志級別 %(pathname)s 調用日志輸出函數的模塊的完整路徑名,可能沒有 %(filename)s 調用日志輸出函數的模塊的文件名 %(module)s 調用日志輸出函數的模塊名 %(funcName)s 調用日志輸出函數的函數名 %(lineno)d 調用日志輸出函數的語句所在的代碼行 %(created)f 當前時間,用UNIX標準的表示時間的浮 點數表示 %(relativeCreated)d 輸出日志信息時的,自Logger創建以 來的毫秒數 %(asctime)s 字符串形式的當前時間。默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒 %(thread)d 線程ID。可能沒有 %(threadName)s 線程名。可能沒有 %(process)d 進程ID。可能沒有 %(message)s 用戶輸出的消息自定義格式
?
?
生成logger對象
1 def logger(): 2 logger = logging.getLogger() 3 4 #設置logger 5 fh = logging.FileHandler('text_log')#向文件發送信息 6 ch = logging.StreamHandler()#向屏幕發送信息 7 8 #定義格式 9 fm = logging.Formatter('%(asctime)s %(filename)s') 10 fh.setFormatter(fm) #設置fh的格式 11 ch.setFormatter(fm) #設置ch的格式 12 13 logger.addHandler(fh) #傳給logger 14 logger.addHandler(ch) #傳給logger 15 logger.setLevel('DEBUG') 16 17 return logger
調用logger
logging的日志可以分為?debug(), info(), warning(), error() and critical()5個級別
1 logger = logger() 2 3 logging.debug('debug message') 4 logging.info('info message') 5 logging.warning('warning message') 6 logging.error('error message') 7 logging.critical('critical message')
注意:
如果指定名稱,則mylogger為root的子樹,如果定義兩個子樹名字相同,則實際生成一個子樹(根默認名稱為root)
1 logger1 = logging.getLogger('mylogger') 2 3 logger2 = logging.getLogger('mylogger')
?
轉載于:https://www.cnblogs.com/webc/p/8509881.html
總結
- 上一篇: 三一挖掘机75多少钱
- 下一篇: 8.1深入