settings
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# app 下预建logs目录
LOG_DIR = os.path.join(BASE_DIR, 'YourAppName', 'logs/')
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'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'
},
'info': {
'format': '[%(asctime)s] [%(levelname)s] %(message)s'
},
'error-http': {
'format': '[%(asctime)s] [%(threadName)s:%(thread)d] [%(name)s:%(lineno)d] [%(levelname)s] %(message)s'
},
},
'handlers': {
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR, 'default.log'),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'simple',
},
'request_handler': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR, 'request.log'),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standard',
},
'console_error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR, 'console.log'),
'formatter': 'standard',
},
'file-error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOG_DIR, 'error.log'),
'formatter': 'standard',
'maxBytes': 1024 * 1024 * 50, # 5 MB
'backupCount': 5,
'mode': 'a',
},
'file': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'formatter': 'info',
'filename': os.path.join(LOG_DIR, 'info.log'),
'maxBytes': 1024 * 1024 * 50, # 5 MB
'backupCount': 5,
'mode': 'a',
},
'file-http': {
'level': 'INFO',
'class': 'logging.handlers.HTTPHandler',
'formatter': 'info',
"host": "127.0.0.1:8080",
"url": "/log_server",
"method": "POST",
},
},
'loggers': {
'django': {
'handlers': ['file'],
'level': 'INFO',
'propagate': True,
},
'http_request': {
'handlers': ['console_error'],
'level': 'ERROR',
'propagate': True,
},
'django.request': {
'handlers': ['request_handler'],
'level': 'ERROR',
'propagate': False,
},
}
}
使用
import logging
log = logging.getLogger('django')