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)