Saya sedang membangun aplikasi dengan Flask dan Celery dan saya mencoba mengirim log aplikasi saya ke Papertrail. Ini berfungsi dengan baik untuk log aplikasi reguler saya (sinkron). Konfigurasinya terlihat seperti ini:
import logging
from logging.handlers import SysLogHandler
import socket
class ContextFilter(logging.Filter):
hostname = socket.gethostname()
def filter(self, record):
record.hostname = ContextFilter.hostname
return True
f = ContextFilter()
logger = logging.getLogger()
logger.setLevel(logging.INFO)
logger.addFilter(f)
formatter = logging.Formatter(
"%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)
syslog = SysLogHandler(address=('<myapp>.papertrailapp.com', <port>))
syslog.setFormatter(formatter)
logger.addHandler(syslog)
Saya telah mencoba menambahkan logger ini ke tugas Seledri tetapi yang saya lihat hanyalah keluaran di sdout dan tidak ada apa pun di Papertrail. Apakah Celery melakukan sesuatu untuk mengatasi alur logging normal?
Saya menyadari Celery memiliki logger khusus tugas tetapi saya tidak dapat menemukan dokumentasi apa pun tentang bagaimana hal ini dapat dikonfigurasi dengan Celery.