標籤:form enc opp hand 建立 中文 stand pre handler
1 import os 2 base_dir=os.path.dirname(os.path.dirname(__file__)) 3 base_db=os.path.join(base_dir,‘db‘) 4 base_log=os.path.join(base_dir,‘log‘) 5 #定義三種日誌輸出格式 6 standard_format=‘[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name)s][%(filename)s:%(lineno)d]‘ 7 ‘[%(levelname)s][%(message)s]‘ #其中name為getlogger指定的名字 8 simple_format = ‘[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s‘ 9 id_simple_format = ‘[%(levelname)s][%(asctime)s] %(message)s‘10 11 logfile_dir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) # log檔案的目錄12 logfile_dir = logfile_dir+‘/log‘13 logfile_name = ‘shopping.log‘ # log檔案名稱14 15 # 如果不存在定義的日誌目錄就建立一個16 if not os.path.isdir(logfile_dir):17 os.mkdir(logfile_dir)18 19 # log檔案的全路徑20 logfile_path = os.path.join(logfile_dir, logfile_name)21 22 # log配置字典23 LOGGING_DIC = {24 ‘version‘: 1,25 ‘disable_existing_loggers‘: False,26 ‘formatters‘: {27 ‘standard‘: {28 ‘format‘: standard_format29 },30 ‘simple‘: {31 ‘format‘: simple_format32 },33 },34 ‘filters‘: {},35 ‘handlers‘: {36 #列印到終端的日誌37 ‘console‘: {38 ‘level‘: ‘DEBUG‘,39 ‘class‘: ‘logging.StreamHandler‘, # 列印到螢幕40 ‘formatter‘: ‘simple‘41 },42 #列印到檔案的日誌,收集info及以上的日誌43 ‘default‘: {44 ‘level‘: ‘DEBUG‘,45 ‘class‘: ‘logging.handlers.RotatingFileHandler‘, # 儲存到檔案46 ‘formatter‘: ‘standard‘,47 ‘filename‘: logfile_path, # 記錄檔48 ‘maxBytes‘: 1024*1024*5, # 日誌大小 5M49 ‘backupCount‘: 5,50 ‘encoding‘: ‘utf-8‘, # 記錄檔的編碼,再也不用擔心中文log亂碼了51 },52 },53 ‘loggers‘: {54 #logging.getLogger(__name__)拿到的logger配置55 ‘‘: {56 ‘handlers‘: [‘default‘, ‘console‘], # 這裡把上面定義的兩個handler都加上,即log資料既寫入檔案又列印到螢幕57 ‘level‘: ‘DEBUG‘,58 ‘propagate‘: True, # 向上(更高level的logger)傳遞59 },60 },61 }
輸出:
[2018-07-28 13:19:37,991][MainThread:43136][task_id:bank][bank.py:31][INFO][賬戶alex還款1元成功]
[2018-07-28 13:25:38,842][MainThread:41504][task_id:user][user.py:20][INFO][賬戶karen註冊成功,初始額度15000元]
[2018-07-28 13:26:25,185][MainThread:41852][task_id:user][user.py:28][INFO][賬戶karen登陸成功,剩餘額度15000元]
[2018-07-28 13:26:36,917][MainThread:41852][task_id:bank][bank.py:18][INFO][賬戶karen成功轉賬1000元給賬戶andy]
[2018-07-28 13:26:41,246][MainThread:41852][task_id:bank][bank.py:31][INFO][賬戶karen還款2000元成功]
[2018-07-28 13:26:45,665][MainThread:41852][task_id:bank][bank.py:42][INFO][賬戶karen取款1000成功,手續約50.0元]
[2018-07-28 13:26:52,368][MainThread:41852][task_id:shop][shop.py:15][INFO][賬戶karen購買{‘IPhone‘: {‘price‘: 8800, ‘count‘: 1}}成功]
Python 通用日誌模組