日志大法,浅浅试了一下
    首先就是在setting.py 中配置LOGGING

    1. LOGGING = {
    2. "version": 1,
    3. "formatters": {
    4. "simple": {
    5. "format": '[%(levelname)s][%(asctime)s][%(filename)s:%(lineno)d]%(message)s'
    6. },
    7. "standard": {
    8. "format": '%(levelname)s:%(asctime)s:%(filename)s:%(lineno)d:%(message)s'
    9. }
    10. },
    11. "handlers": {
    12. "console": {
    13. "class": "logging.StreamHandler",
    14. "level": "DEBUG",
    15. "formatter": "simple"
    16. },
    17. "file": {
    18. "class": "logging.FileHandler",
    19. "formatter": "simple",
    20. "filename": "logtest.log"
    21. }
    22. },
    23. "loggers": {
    24. "simple": {
    25. "level": "DEBUG",
    26. "handlers": ["file"],
    27. "propagate": True
    28. },
    29. "standard": {
    30. "level": "ERROR",
    31. "handlers": ["console", "file"],
    32. "propagate": True
    33. }
    34. }
    35. }

    上面指定了创建的日志文件“logtest.log”,指定了日志级别‘simple’和‘standard’,
    simple代表debug级别,只输出到日志文件。
    standard 代表error级别,会输出到控制台和日志文件。

    1. import logging
    2. logger = logging.getLogger('standard')
    3. def export_model_as_csv(modeladmin, request, queryset):
    4. response = HttpResponse(content_type='test/csv',
    5. headers={'Content-Disposition': 'attachment; filename=test_%s.csv' % (
    6. datetime.now().strftime('%Y-%m-%d-%H-%M-%S'),)
    7. })
    8. field_list = export_list
    9. write = csv.writer(response)
    10. write.writerow([
    11. queryset.model._meta.get_field(f).verbose_name.title() for f in field_list
    12. ])
    13. for obj in queryset:
    14. csv_line_values = []
    15. for field in field_list:
    16. field_object = queryset.model._meta.get_field(field)
    17. field_value = field_object.value_from_object(obj)
    18. csv_line_values.append(field_value)
    19. write.writerow(csv_line_values)
    20. #在这里哦
    21. logger.error("%s exported %s candidate records" % (request.user, len(queryset)))
    22. return response