如何在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': { #日志分配到哪個(gè)handlers中 'mydjango': { 'handlers': ['console','file_handler'], 'level':'DEBUG', 'propagate': True, }, 'django.request': { 'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': False, }, ####如果要將get,post請(qǐng)求同樣寫入到日志文件中,則這個(gè)觸發(fā)器的名字必須交django,然后寫到handler中 } }
在settings中寫完配置之后,下面就要具體到相應(yīng)的視圖函數(shù)中了。注意:這里我們?cè)趯?shí)施到具體函數(shù)或方法的時(shí)候需要手動(dòng)捕獲異常
然后視圖函數(shù)中
#這里我們模擬一個(gè)登陸來(lái)寫 log = logging.getLogger('mydjango') #這里的mydjango是settings中l(wèi)oggers里面對(duì)應(yīng)的名字 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)
總結(jié)
以上所述是小編給大家介紹的如何在django中添加日志功能,希望對(duì)大家有所幫助!
相關(guān)文章
Python異常處理:try、except、else、finally的全面解析
在Python中,異常是程序在運(yùn)行時(shí)發(fā)生的錯(cuò)誤,當(dāng)Python解釋器遇到一個(gè)它不能處理的錯(cuò)誤時(shí),它會(huì)拋出一個(gè)異常,異常處理的主要目的是在程序遇到錯(cuò)誤時(shí),提供一種方法來(lái)處理這些錯(cuò)誤,而不是簡(jiǎn)單地讓程序崩潰,本文介紹了Python異常處理:try、except、else、finally的全面解析2024-07-07Python監(jiān)測(cè)屏幕界面內(nèi)容變化并發(fā)送通知方法詳解
這篇文章主要為大家介紹了Python監(jiān)測(cè)屏幕界面內(nèi)容變化并發(fā)送通知,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06pytorch 如何實(shí)現(xiàn)HWC轉(zhuǎn)CHW
這篇文章主要介紹了pytorch HWC轉(zhuǎn)CHW的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05keras 實(shí)現(xiàn)輕量級(jí)網(wǎng)絡(luò)ShuffleNet教程
這篇文章主要介紹了keras 實(shí)現(xiàn)輕量級(jí)網(wǎng)絡(luò)ShuffleNet教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06詳解一種用django_cache實(shí)現(xiàn)分布式鎖的方式
這篇文章主要介紹了詳解一種用django_cache實(shí)現(xiàn)分布式鎖的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Python 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素實(shí)例
這篇文章主要介紹了Python 找出出現(xiàn)次數(shù)超過(guò)數(shù)組長(zhǎng)度一半的元素實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05PyTorch 解決Dataset和Dataloader遇到的問(wèn)題
今天小編就為大家分享一篇PyTorch 解決Dataset和Dataloader遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01