Django自帶日誌 settings.py檔案配置方法
阿新 • • 發佈:2020-01-09
Django settings.py檔案配置部分:
# logging配置 log_file = '/home/nagain/learn/log' log_file_path = os.path.join(log_file,'all.log') if not os.path.exists(log_file): os.mkdir(log_file) os.mknod(log_file_path) # 建立空檔案 LOGGING = { 'version': 1,'disable_existing_loggers': True,'formatters': { # 日誌格式 'standard': { 'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] ' '[%(module)s:%(funcName)s] [%(levelname)s]- %(message)s' } },'filter': { },'handlers': { 'mail_admins': { 'level': 'ERROR','class': 'django.utils.log.AdminEmailHandler','include_html': True,},'default': { 'level': 'DEBUG','class': 'logging.handlers.RotatingFileHandler','filename': log_file_path,# 日誌輸出檔案 'maxBytes': 1024*1024*5,# 檔案大小 'backupCount': 5,# 備份份數 'formatter': 'standard',#使用哪種formatters日誌格式 },'error': { 'level': 'ERROR','maxBytes': 1024*1024*5,'backupCount': 5,'formatter': 'standard','console': { 'level': 'DEBUG','class': 'logging.StreamHandler','formatter': 'standard' },'request_handler': { 'level': 'DEBUG','scprits_handler': { 'level': 'DEBUG',} },'loggers': { 'django': { 'handlers': ['default','console'],# 來自上面定義的handlers內容 'level': 'INFO','propagate': False # 是否繼承父類的log資訊 },'scripts': { 'handlers': ['scprits_handler'],'level': 'INFO','propagate': False },# sourceDns.webdns.views 應用的py檔案 'sourceDns.webdns.views': { 'handlers': ['default','error'],'propagate': True },'sourceDns.webdns.util': { 'handlers': ['error'],'level': 'ERROR',# 'django.request': { # 'handlers': ['mail_admins'],# 'level': 'ERROR',# 'propagate': False,# },} }
專案檢視函式views.py使用例項:
# 日誌 import logging logger = logging.getLogger('sourceDns.webdns.views') # 獲取settings.py配置檔案中logger名稱 def index(request): a = reverse('index:article') logger.info(a) return HttpResponseRedirect(a)
注意:錯誤日誌記錄級別level
級別 | 值 | 描述 |
CRITICAL | 50 | 關鍵錯誤/訊息 |
ERROR | 40 | 錯誤 |
WARNING | 30 | 警告訊息 |
INFO | 20 | 通知訊息 |
DEBUG | 10 | 除錯 |
NOTSET | 0 | 無級別 |
注意:記錄器 handler
關鍵字引數 | 描述 |
filename | 將日誌訊息附加到指定檔名的檔案 |
filemode | 指定用於開啟檔案模式 |
format | 用於生成日誌訊息的格式字串 |
datefmt | 用於輸出日期和時間的格式字串 |
level | 設定記錄器的級別 |
stream | 提供開啟的檔案,用於把日誌訊息傳送到檔案。 |
注意: format日誌訊息顯示格式
格式 | 描述 |
%(name)s | 記錄器的名稱 |
%(levelno)s | 數字形式的日誌記錄級別 |
%(levelname)s | 日誌記錄級別的文字名稱 |
%(filename)s | 執行日誌記錄呼叫的原始檔的檔名稱 |
%(pathname)s | 執行日誌記錄呼叫的原始檔的路徑名稱 |
%(funcName)s | 執行日誌記錄呼叫的函式名稱 |
%(module)s | 執行日誌記錄呼叫的模組名稱 |
%(lineno)s |
執行日誌記錄呼叫的行號 |
%(created)s | 執行日誌記錄的時間 |
%(asctime)s | 日期和時間 |
%(msecs)s | 毫秒部分 |
%(thread)d | 執行緒ID |
%(threadName)s | 執行緒名稱 |
%(process)d | 程序ID |
%(message)s | 記錄的訊息 |
注意: 內建處理器
logging模組提供了一些處理器,可以通過各種方式處理日誌訊息。使用addHandler()方法將這些處理器新增給Logger物件。另外還可以為每個處理器配置它自己的篩選和級別。
handlers.DatagramHandler(host,port):傳送日誌訊息給位於制定host和port上的UDP伺服器。 handlers.FileHandler(filename):將日誌訊息寫入檔案filename。 handlers.HTTPHandler(host,url):使用HTTP的GET或POST方法將日誌訊息上傳到一臺HTTP 伺服器。 handlers.RotatingFileHandler(filename):將日誌訊息寫入檔案filename。如果檔案的大小超出maxBytes制定的值,那麼它將被備份為filename1。
*****以上內容也是自己查詢通過自己測試是可行的,如果想要了解更加詳細,請自行檢視神器(django官方文件)*****
這篇Django自帶日誌 settings.py檔案配置方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。