Django 로그 처리
7938 단어 Django
로그 수준
낮은 레벨을 선택하면 기본적으로 자신의 레벨 이상의 정보를 포함하지만 아래로 포함하지 않습니다. 즉,
ERROR
레벨INFO, DEBUG
오류 메시지는 무시됩니다.필터
예: 하나만 처리할 수 있도록 지정할 수 있습니다.
ERROR
레벨에서 보내는 특정 메시지의 필터, 예를 들어 기록과 같은 불필요한 동작을 필터할 수 있습니다DEBUG
로그서식 적용
verbose
로그에 대한 상세한 기록'formatters': {
#
"""
levelname:
asctime:
module :
process :
thread :
message :
"""
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
}
simple
간단한 기록으로 경고 레벨과 로그 메시지만 출력하고 더 지정할 수 있습니다로깅 열기
import logging
logger = logging.getLogger(__name__)
def my_view(request, arg1, arg):
...
if bad_mojo:
#
logger.error(' ')
로그 처리 레코드 수동 호출
logger.debug()
logger.info()
logger.warning()
logger.error()
logger.critical()
logger.log()
특정 로그 레벨의 로그 메시지를 수동으로 보내기logger.exception()
ERROR 포장 현재 이상 창고 프레임의 레벨 로그 생성LOGGING = {
#
'version': 1,
# ,Flase ,
'disable_existing_loggers': False,
# ,
'formatters': {
#
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
# , ,
'simple': {
'format': '%(levelname)s %(module)s %(message)s'
},
},
# , debug , :debuf ,
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
#
'handlers': {
# DEBUG
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
# INFO
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
#
'filename':
os.path.join(os.path.dirname(BASE_DIR), "logs/meiduo.log"),
# 300M
'maxBytes': 300 * 1024 * 1024,
# ,
'backupCount': 10,
'formatter': 'verbose'
},
},
# ,
'loggers': {
'django': { # django
'handlers': ['console', 'file'],
#
'propagate': True,
},
}
}
version
공식 해석은 소용없지만 반드시 써야 한다구성을 dictConfig version 1 형식으로 해석합니다.지금까지 dictConfig 형식의 유일한 버전입니다.
사용자 정의 비정상 프로세서
#
logger = logging.getLogger('django')
def exception_handler(exc, context):
"""
:param exc:
:param context:
:return: Response
"""
# drf
response = drf_exception_handler(exc, context)
if response is None:
view = context['view']
if isinstance(exc, DatabaseError) or isinstance(exc, RedisError):
#
logger.error('[%s] %s' % (view, exc))
response = Response({'message': ''}, status=status.HTTP_507_INSUFFICIENT_STORAGE)
return response
-----------------
#
REST_FRAMEWORK = {
# rest_framework
'EXCEPTION_HANDLER': 'meiduo_mall.utils.exceptions.exception_handler',
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.