一、配置日志文件
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'detail': {
'format': '%(asctime)s %(levelname)s %(module)s: %(message)s'
},
'simple': {
'format': '%(message)s'
},
},
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': f'{BASE_DIR}/blog.log',
'formatter': 'detail',
},
},
'loggers': {
'statistic': {
'handlers': ['file'],
'level': 'INFO',
'propagate': False,
},
},
}
二、设置中间件,输出日志文件
import logging
logger = logging.getLogger('statistic')
def statistic(view_func):
def wrap(request, *args, **kwargs):
response = view_func(request, *args, **kwargs)
if response.status_code == 200:
ip = request.META['REMOTE_ADDR']
aid = request.GET.get('aid')
logger.info('%s %s' % (ip, aid))
print(ip)
return response
return wrap
三、用日志中间件装饰视图函数
@statistic
@page_cache(5)
def article(request):
...