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")

猜你喜欢

转载自www.cnblogs.com/tastepy/p/9019058.html
今日推荐