Django日志功能
Posted TasteL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django日志功能相关的知识,希望对你有一定的参考价值。
在setting.py下:
1 python 2 BK_LOG_DIR = os.environ.get(‘BK_LOG_DIR‘, ‘/data/paas/apps/logs/‘) 3 LOGGING_DIR = os.path.join(BASE_DIR, ‘logs‘, APP_ID) 4 LOG_CLASS = ‘logging.handlers.RotatingFileHandler‘ 5 LOG_LEVEL = ‘ERROR‘ 6 if RUN_MODE == ‘DEVELOP‘: 7 LOG_LEVEL = ‘DEBUG‘ 8 elif RUN_MODE == ‘TEST‘: 9 LOGGING_DIR = os.path.join(BK_LOG_DIR, APP_ID) 10 LOG_LEVEL = ‘INFO‘ 11 elif RUN_MODE == ‘PRODUCT‘: 12 LOGGING_DIR = os.path.join(BK_LOG_DIR, APP_ID) 13 LOG_LEVEL = ‘ERROR‘ 14 15 # 自动建立日志目录 16 if not os.path.exists(LOGGING_DIR): 17 try: 18 os.makedirs(LOGGING_DIR) 19 except: 20 pass 21 22 LOGGING = { 23 #第一个参数,一般都为1 24 ‘version‘: 1, 25 #第二个参数,False 26 ‘disable_existing_loggers‘: False, 27 #第三个 日志格式 28 ‘formatters‘: { 29 #一种格式,自定义,下同 30 ‘verbose‘: { 31 ‘format‘: ‘%(levelname)s [%(asctime)s] %(pathname)s %(lineno)d %(funcName)s %(process)d %(thread)d \n \t %(message)s \n‘, 32 ‘datefmt‘: ‘%Y-%m-%d %H:%M:%S‘ 33 }, 34 #同上 35 ‘simple‘: { 36 ‘format‘: ‘%(levelname)s %(message)s \n‘ 37 }, 38 }, 39 #第四个参数,日志控制器 40 ‘handlers‘: { 41 #一种日志控制器,下同 42 ‘null‘: { 43 ‘level‘: ‘DEBUG‘, 44 ‘class‘: ‘django.utils.log.NullHandler‘, 45 }, 46 #同上 47 ‘mail_admins‘: { 48 ‘level‘: ‘ERROR‘, 49 ‘class‘: ‘django.utils.log.AdminEmailHandler‘ 50 }, 51 #~~ 52 ‘console‘: { 53 ‘level‘: ‘DEBUG‘, 54 ‘class‘: ‘logging.StreamHandler‘, 55 ‘formatter‘: ‘simple‘ 56 }, 57 #~~ 58 ‘root‘: { 59 ‘class‘: LOG_CLASS, 60 ‘formatter‘: ‘verbose‘, 61 ‘filename‘: os.path.join(LOGGING_DIR, ‘%s.log‘ % APP_ID), 62 ‘maxBytes‘: 1024 * 1024 * 10, 63 ‘backupCount‘: 5 64 }, 65 ‘component‘: { 66 ‘class‘: LOG_CLASS, 67 ‘formatter‘: ‘verbose‘, 68 ‘filename‘: os.path.join(LOGGING_DIR, ‘component.log‘), 69 ‘maxBytes‘: 1024 * 1024 * 10, 70 ‘backupCount‘: 5 71 }, 72 ‘wb_mysql‘: { 73 ‘class‘: LOG_CLASS, 74 ‘formatter‘: ‘verbose‘, 75 ‘filename‘: os.path.join(LOGGING_DIR, ‘wb_mysql.log‘), 76 ‘maxBytes‘: 1024 * 1024 * 4, 77 ‘backupCount‘: 5 78 }, 79 }, 80 #第五个参数 81 ‘loggers‘: { 82 #使用时需要用到的名字 83 ‘django‘: { 84 ‘handlers‘: [‘null‘], 85 ‘level‘: ‘INFO‘, 86 ‘propagate‘: True, 87 }, 88 #~~ 89 ‘django.request‘: { 90 ‘handlers‘: [‘console‘], 91 ‘level‘: ‘ERROR‘, 92 ‘propagate‘: True, 93 }, 94 # the root logger ,用于整个project的logger 95 #~~ 96 ‘root‘: { 97 ‘handlers‘: [‘root‘], 98 ‘level‘: LOG_LEVEL, 99 ‘propagate‘: True, 100 }, 101 # 组件调用日志 102 ‘component‘: { 103 ‘handlers‘: [‘component‘], 104 ‘level‘: ‘WARN‘, 105 ‘propagate‘: True, 106 }, 107 # other loggers... 108 ‘django.db.backends‘: { 109 ‘handlers‘: [‘wb_mysql‘], 110 ‘level‘: ‘DEBUG‘, 111 ‘propagate‘: True, 112 }, 113 } 114 }
使用:
test.py下
import logging logger = logging.getLogger("django") #几种种模式,记录不同等级的日志 #最后一种用于try,except报错记录日志 logger.debug("test") logger.info("test") logger.warning("test") logger.error("wrong1") logger.exception("wrong2")
以上是关于Django日志功能的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django Summernote 中显示编程片段的代码块?
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段