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