When you start Celery, there is a flag for setting the logging level:
celery worker -A my_app -E -l WARNING --concurrency=1
Simple enough. There is a similar flag for Celery beat. The problem is that even if you set the level fairly high and you are running celery beat, you will still get DEBUG and INFO level logging info every time Celery beat runs. This can create a huge log file of useless information.
It seems there is a bug somewhere in the logging system. This post suggests that django-debug-toolbar can be the culprit. Unfortunately for me, I am not running django-debug-toolbar. Apparently some other 3rd party app is causing the problem.
My solution is simple. I created a cron job to clear the file every hour, using the command:
cat /dev/null > /path/to/logfile