【python小隨筆】Django+錯誤日志(配置Django報錯文件指定位置)


1:  自定義日志文件.py----------幾個文件需要創建日志,就需要重新定義幾份

#1 定義一個日志文件 創建一個操作日志對象logger 

file_1 = logging.FileHandler('text_1.log', 'a', encoding='utf-8')  # text_1.log 定義日志文件名 

fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s") # 定義創建時間,哪個文件,錯誤level,··
file_1 .setFormatter(fmt)   # 建立執行


# 定義日志  
logger1 = logging.Logger('s1', level=logging.ERROR) # 設置日志
logger1.addHandler(file_1 )

2:將定義好的定義日志導入需要存放報錯的文件,並且使用traceback模塊具體化報錯地點:

# 導入模塊
import logging
import traceback
# 導入定義好的日志變量
from Api.utils.自定義日志 import logger1

# 測試1:
def func():
    try:
        a = a + 1
    except Exception as e:
        msg = traceback.format_exc()
        logger1.error(msg)

func()


#報錯結果:(自動創建文件並且寫入錯誤信息)
2019-11-26 14:25:10,196 - s1 - ERROR -logging2:  Traceback (most recent call last):
  File "C:/Users/user/Desktop/framework/django-rest-framework/Api/utils/logging2.py", line 17, in func
    a = a + 1
UnboundLocalError: local variable 'a' referenced before assignment

3:直接定義logging(不推薦),需要創建多個日志文件:

import logging

# logging
logging.basicConfig(
filename='loggingdemo.txt', # 日志文件名
format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S %p',
level=10
)


logging.debug('None')
logging.info('None') # 正常的信息
logging.warning('None') # 警告(不出錯)
logging.error('None') # 報錯
logging.critical('None') # 非常嚴重的錯誤


# logging.log(10,'log')

"""
CRITICAL = 50
FATAL = CRITICAL
ERROR = 40
WARNING = 30
WARN = WARNING
INFO = 20
DEBUG = 10
NOTSET = 0
"""

def func():
try:
a = a + 1
except Exception as e:
print(e)
logging.error(str(e))
func()

 4:Django里指定任意日志文件位置:

# 取執行文件全局絕對路徑(不管在哪里啟動Django都會取到這個路徑) 紅色的字體表示自定義名稱
 path= os.path.abspath(os.path.dirname(__file__))

# 拼接路徑
 files_path = path + "/keywords_logging/文件名.log"  # 路徑+設定的日志文件名


# 設置日志
keyword_expect_debug = logging.FileHandler(files_path, 'a', encoding='utf-8')
fmt = logging.Formatter(fmt="%(asctime)s - %(name)s - %(levelname)s -%(module)s:  %(message)s")
keyword_expect_debug.setFormatter(fmt)

keyword_debug = logging.Logger('keyword_debug', level=logging.DEBUG)
keyword_debug.addHandler(keyword_expect_debug)


# 定義文件日志
 form 文件 import keyword_debug
    try:
        a = a + 1
    except Exception as e:
        msg = traceback.format_exc()
        logging_main.keyword_debug.debug(msg)
         

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM