您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在django中添加一個日志功能,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在settings中配置以下代碼
#LOGGING_DIR 日志文件存放目錄 LOGGING_DIR = "logs" # 日志存放路徑 if not os.path.exists(LOGGING_DIR): os.mkdir(LOGGING_DIR) import logging LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'formatters': { #格式化器 'standard': { 'format': '[%(levelname)s][%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d] > %(message)s' }, 'simple': { 'format': '[%(levelname)s]> %(message)s' }, }, 'filters': { 'require_debug_true': { '()': 'django.utils.log.RequireDebugTrue', }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'filters': ['require_debug_true'], 'class': 'logging.StreamHandler', 'formatter': 'simple' }, 'file_handler': { 'level': 'INFO', 'class': 'logging.handlers.TimedRotatingFileHandler', 'filename': '%s/django.log' % LOGGING_DIR, #具體日志文件的名字 'formatter':'standard' }, # 用于文件輸出 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'formatter':'standard' }, }, 'loggers': { #日志分配到哪個handlers中 'mydjango': { 'handlers': ['console','file_handler'], 'level':'DEBUG', 'propagate': True, }, 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': False, }, ####如果要將get,post請求同樣寫入到日志文件中,則這個觸發器的名字必須交django,然后寫到handler中 } }
在settings中寫完配置之后,下面就要具體到相應的視圖函數中了。注意:這里我們在實施到具體函數或方法的時候需要手動捕獲異常
然后視圖函數中
#這里我們模擬一個登陸來寫 log = logging.getLogger('mydjango') #這里的mydjango是settings中loggers里面對應的名字 class Login(View): def get(self,request): return render(request,'login.html') def post(self,request): user = request.POST.get('username') pwd = request.POST.get('password') try: s = 1/0 except Exception as e: log.error(e)
上述內容就是怎么在django中添加一個日志功能,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。