Python 通用日誌模組

來源:互聯網
上載者:User

標籤: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 通用日誌模組

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.