django 日志

在settings.py 最后面

# 日志

#########################
## Django Logging  BEGIN
#########################

#LOGGING_DIR 日志文件存放目录
#########################
## Django Logging  BEGIN
#########################

#LOGGING_DIR 日志文件存放目录
import logging
LOGGING_DIR = os.path.join(BASE_DIR, 'log')

LOGGING = {
    'version': 1,
     'disable_existing_loggers': True,
     'formatters': {
         'simple': {
             'format': '[%(asctime)s] %(levelname)s : %(message)s'
         },
         'verbose': {
             'format': '[%(asctime)s] %(levelname)s %(module)s %(process)d %(thread)d : %(message)s'
         },
         'standard':{
             'format': '%(asctime)s [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(levelname)s]- %(message)s'
         },
     },
 # handlers:用来定义具体处理日志的方式,可以定义多种,"default"就是默认方式,"console"就是打印到控制台方式。file是写入到文件的方式,注意使用的class不同
     'handlers': {
         'mail_admins':{
             'level': 'ERROR',
             'class': 'django.utils.log.AdminEmailHandler',
             'include_html': True,
         },
         'default': {
            'level':'DEBUG',
            'class':'logging.handlers.RotatingFileHandler',
            'filename': os.path.join(LOGGING_DIR,'hippo300_admin.log'),
            'maxBytes': 1024*1024*5,
            'backupCount': 5,
            'formatter':'simple',
         },
         'request_handler': {
             'level':'DEBUG',
             'class':'logging.handlers.RotatingFileHandler',
             'filename': os.path.join(LOGGING_DIR,'debug_request.log'),
             'maxBytes': 1024*1024*5,
             'backupCount': 5,
             'formatter':'standard',
         },
         # 'scprits_handler': {
         #    'level':'DEBUG',
         #    'class':'logging.handlers.RotatingFileHandler',
         #    'filename': os.path.join(LOGGING_DIR,'debug_scprits.log'),
         #    'maxBytes': 1024*1024*5,
         #    'backupCount': 5,
         #    'formatter':'standard',
         # },

         'console': {
             'level': 'INFO',
             'class': 'logging.StreamHandler', # 用这'logging.StreamHandler' 日志信息才会输出到console
             # 'filename':os.path.join(LOGGING_DIR,'info_console.log'),
             'formatter': 'standard',
         },
         # 'file': {
         #     'level': 'INFO',
         #     'class':'logging.handlers.RotatingFileHandler',
         #     'formatter': 'simple',
         #     'filename':os.path.join(LOGGING_DIR,'info_file.log'),
         #     'maxBytes': 1024*1024*5, # 5 MB
         #     'backupCount': 5,
         #     'mode': 'a',
         # },
     },
     'loggers': { # log记录器,配置之后就会对应的输出日志
         'django': {
             'handlers': ['console','request_handler','default'],
             'level':'INFO',
             'propagate': True,
         },
     },
}

logs = logging.getLogger("django") # 'django'是一种类型的日志

#########################
## Django Logging  END
#########################
 # 'django'是一种类型的日志

#########################
## Django Logging  END
#########################

在其他py里,如views.py里

from myproject.settings import logger # myproject项目名
logger.error("错误")
logger.info("test info ")

你可能感兴趣的:(django 日志)