diff --git a/docker-compose.yml b/docker-compose.yml index 5848d8c..db5b91a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,8 +30,7 @@ services: context: . dockerfile: ./docker/django command: | - celery worker - -n worker1@%h + celery worker -n worker1@%h -n worker2@%h --app newsreader --loglevel INFO @@ -60,8 +59,7 @@ services: target: production entrypoint: /app/bin/docker-entrypoint.sh command: | - gunicorn - --bind 0.0.0.0:8000 + gunicorn --bind 0.0.0.0:8000 --workers 3 newsreader.wsgi:application healthcheck: diff --git a/docker/django b/docker/django index 106c20d..b9a1208 100644 --- a/docker/django +++ b/docker/django @@ -89,6 +89,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ WORKDIR /app +RUN mkdir /app/logs +RUN mkdir /app/media RUN mkdir /app/bin COPY ./requirements /app/requirements diff --git a/src/newsreader/conf/base.py b/src/newsreader/conf/base.py index 97f0cdb..b690409 100644 --- a/src/newsreader/conf/base.py +++ b/src/newsreader/conf/base.py @@ -131,43 +131,43 @@ LOGGING = { "format": "[{server_time}] {message}", "style": "{", }, - "syslog": { - "class": "logging.Formatter", - "format": "[newsreader] {message}", - "style": "{", - }, }, "handlers": { "console": { "level": "INFO", - "filters": ["require_debug_true"], "class": "logging.StreamHandler", "formatter": "timestamped", }, + "file": { + "level": "DEBUG", + "class": "logging.handlers.RotatingFileHandler", + "filename": BASE_DIR / "logs" / "newsreader.log", + "backupCount": 5, + "maxBytes": 50000000, # 50 mB + "formatter": "timestamped", + }, "celery": { "level": "INFO", - "filters": ["require_debug_false"], - "class": "logging.handlers.SysLogHandler", - "formatter": "syslog", - "address": "/dev/log", - }, - "syslog": { - "level": "ERROR", - "filters": ["require_debug_false"], - "class": "logging.handlers.SysLogHandler", - "formatter": "syslog", - "address": "/dev/log", + "class": "logging.handlers.RotatingFileHandler", + "filename": BASE_DIR / "logs" / "celery.log", + "backupCount": 5, + "maxBytes": 50000000, # 50 mB + "formatter": "timestamped", }, }, "loggers": { - "django": {"handlers": ["console", "syslog"], "level": "INFO"}, + "django": {"handlers": ["console"], "level": "INFO"}, "django.server": { - "handlers": ["console", "syslog"], + "handlers": ["console"], "level": "INFO", "propagate": False, }, - "celery": {"handlers": ["celery", "console"], "level": "INFO"}, - "newsreader": {"handlers": ["syslog", "console"], "level": "INFO"}, + "celery.task": {"handlers": ["console", "celery"], "level": "INFO"}, + "newsreader": { + "handlers": ["console", "file"], + "level": "DEBUG", + "propagate": False, + }, }, }