2015-02-03 12 views
5

Tôi đang cố gắng định cấu hình cấu hình đăng nhập của mình trong settings.py và có rất nhiều tùy chọn, tôi đang gặp sự cố khi sao chép nhật ký máy chủ phát triển được tích hợp (in ra bảng điều khiển).Cách cấu hình nhật ký Django của tôi hoạt động như nhật ký máy chủ phát triển tích hợp?

Tôi muốn nhật ký sản xuất của mình ghi lại cùng một thông tin thường được in vào bảng điều khiển trong nhật ký máy chủ phát triển (yêu cầu GET, thông tin gỡ lỗi, v.v.). Tôi cần phải biết cài đặt nào tôi cần thay đổi bên dưới hoặc vị trí của cài đặt cho nhật ký máy chủ phát triển được cài sẵn để tôi có thể sao chép cài đặt đó.

LOGGING = { 
    'version': 1, 
    'formatters': { 
     'verbose': { 
      'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' 
     }, 
     'simple': { 
      'format': '%(levelname)s %(message)s' 
     }, 
    }, 
    'handlers': { 
     'console': { 
      'level': 'DEBUG', 
      'class': 'logging.StreamHandler', 
      'formatter': 'simple' 
      }, 
     'file': { 
      'level': 'DEBUG', 
      'class': 'logging.FileHandler', 
      'filename': '/home/django/django_log.log', 
      'formatter': 'simple' 
      }, 
     }, 
    'loggers': { 
     'django': { 
      'handlers': ['file'], 
      'level': 'DEBUG', 
      'propagate': True, 
      }, 
     } 
    } 

if DEBUG: 
    # make all loggers use the console. 
    for logger in LOGGING['loggers']: 
     LOGGING['loggers'][logger]['handlers'] = ['console'] 

Tôi cũng không muốn phải thêm bất kỳ mã nào ở bất kỳ nơi nào khác nhưng settings.py của tôi nếu có thể. Tôi không muốn phải đi vào views.py của tôi và chỉ định những lỗi để in hoặc đăng nhập, tôi không bao giờ phải làm điều đó với máy chủ phát triển, vì vậy tôi hy vọng tôi có thể tìm ra điều này.

+0

Tôi đang sử dụng uWSGI để sản xuất, sẽ chuyển hướng tất cả nhật ký (từ bảng điều khiển) đến tệp. https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/uwsgi/ – JimmyYe

Trả lời

3

Trong Django 1.8, các default logging configuration cho một môi trường gỡ lỗi là:

Khi DEBUGTrue:

  • Các django nhận tất cả logger gửi tất cả các thư ở cấp WARNING hoặc cao hơn cho giao diện điều khiển. Django không thực hiện bất kỳ cuộc gọi đăng nhập nào như vậy vào lúc này (tất cả việc ghi nhật ký ở mức DEBUG hoặc được xử lý bởi trình ghi nhật ký django.requestdjango.security).
  • Trình ghi nhật ký py.warnings xử lý thư từ warnings.warn(), gửi thư đến bảng điều khiển.

Cấu hình ghi nhật ký này có thể được tìm thấy tại django.utils.log.DEFAULT_LOGGING. Lưu ý rằng trình ghi bắt tất cả thực sự cũng nhận được thông báo thông tin, không chỉ cảnh báo và ở trên.

Khi ghi đè cài đặt ghi nhật ký mặc định, hãy lưu ý rằng disable_existing_loggers, nếu được đặt thành True, will shut up all of Django's default loggers.


Các máy chủ phát triển logs every incoming request directly to stderr như thế này:

[18/Oct/2015 12:08:17] "GET /about/ HTTP/1.1" 200 9946 

Đây là cụ thể cho các máy chủ phát triển và sẽ không được chuyển sang một môi trường sản xuất, trừ khi bạn sao chép nó with middleware.

Các vấn đề liên quan