日志大法,浅浅试了一下
首先就是在setting.py 中配置LOGGING
LOGGING = {
"version": 1,
"formatters": {
"simple": {
"format": '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
},
"standard": {
"format": '%(levelname)s:%(asctime)s:%(filename)s:%(lineno)d:%(message)s'
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple"
},
"file": {
"class": "logging.FileHandler",
"formatter": "simple",
"filename": "logtest.log"
}
},
"loggers": {
"simple": {
"level": "DEBUG",
"handlers": ["file"],
"propagate": True
},
"standard": {
"level": "ERROR",
"handlers": ["console", "file"],
"propagate": True
}
}
}
上面指定了创建的日志文件“logtest.log”,指定了日志级别‘simple’和‘standard’,
simple代表debug级别,只输出到日志文件。
standard 代表error级别,会输出到控制台和日志文件。
import logging
logger = logging.getLogger('standard')
def export_model_as_csv(modeladmin, request, queryset):
response = HttpResponse(content_type='test/csv',
headers={'Content-Disposition': 'attachment; filename=test_%s.csv' % (
datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),)
})
field_list = export_list
write = csv.writer(response)
write.writerow([
queryset.model._meta.get_field(f).verbose_name.title() for f in field_list
])
for obj in queryset:
csv_line_values = []
for field in field_list:
field_object = queryset.model._meta.get_field(field)
field_value = field_object.value_from_object(obj)
csv_line_values.append(field_value)
write.writerow(csv_line_values)
#在这里哦
logger.error("%s exported %s candidate records" % (request.user, len(queryset)))
return response