2010-10-04 26 views
12

tôi có dưới đây thiết lập trong file cấu hình cần tây của tôi:Làm thế nào để kích hoạt luân phiên các tệp nhật ký cho celeryd với djcelery?

  1. CELERYD_LOG_DEBUG = 'FALSE'
  2. CELERYD_LOG_FILE = r '/ var/log/cần tây/celeryd.log'
  3. CELERYD_LOG_LEVEL = "ERROR"

Tôi đã xem tệp cài đặt của cần tây và không có tùy chọn chỉ định giới hạn kích thước tệp nhật ký trong cấu hình. Ngay cả mã trông giống như của nó bằng cách sử dụng StreamHandler thay vì lớp RotationHandler. Bất kỳ manh mối/gợi ý nào?

Cảm ơn.

Trả lời

21

Để xoay nhật ký trên Ubuntu, nếu bạn cần đăng nhập cần/var/log/cần tây/ celeryd.log, bạn có thể sử dụng cấu hình như một bước trên để thực hiện xoay vòng hàng tuần bằng /etc/logrotate.d /.

/var/log/celery/*.log { 
    weekly 
    missingok 
    rotate 52 
    compress 
    delaycompress 
    notifempty 
    copytruncate 
} 
+0

Tôi đã thử điều này nhưng tôi đã không chính xác làm việc cho tôi. Nó tạo ra các tập tin hàng ngày (trong trường hợp của tôi) nhưng sau khi nhật ký được luân chuyển, mặc dù tệp nhật ký vẫn tồn tại, nó vẫn trống cho đến khi tôi bắt đầu sử dụng celeryd và celerybeat. Có tín hiệu nào tôi có thể gửi quy trình để cho nó biết tệp "đã thay đổi" không? –

+0

Bạn phải sử dụng cần tây 2.2.5 hoặc cao hơn, ở đó việc luân phiên đăng nhập sẽ hoạt động mà không có vấn đề gì. http://docs.celeryproject.org/en/latest/changelog.html#v225-news –

+0

Từ requirements.txt tôi: cần tây == 2.5.3 django-cần tây == 2.5.5 khởi động của tôi lệnh: python manage.py celeryd_detach --pidfile = {project_location} /celeryd.pid --autoscale = 10,10 --autoreload --loglevel = INFO --logfile = {log_location} /celeryd.log --pythonpath =/usr/share/pyshared Sau khi nhật ký được xoay, nó vẫn trống cho đến khi tôi xóa công việc trước đó và khởi động lại nó. –

1

Hãy thử sử dụng [WatchedFileHandler][1]. Nó thông báo rằng một tập tin đã bị cắt bớt hoặc thay đổi và mở lại tập tin. Lưu ý rằng bạn phải đặt CELERY_HIJACK_ROOT_LOGGER = False và sau đó thiết lập trình ghi nhật ký này và tự ghi log.getLogger ('custom_logger') bên trong các tác vụ. Xem this post về cách cấu hình ghi nhật ký dựng sẵn của Celery không linh hoạt và kiểm soát chi tiết.

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