Не показан регистратор Django, работающий на Docker

logger.debug() и print() не отображаются на проекте Django, который работает на Docker. Все остальные операции корректны.

Правильно ли я понимаю, что журналы отображаются в окне терминала, который запускает docker-compose up?

Я пробовал выводить разрешение , но это не работает для меня.

Мои настройки приведены ниже.

directory

Project
    ├── Service_ID
    │       ├── root
    │            ├──settings.py
    |             
    ├── docker-compose.yml
    └── docker
        ├── mysql
        │   ├── Dockerfile
        │   └── my.cnf
        ├── nginx
        │   ├── default.conf
        │   └── uwsgi_params
        └── python
            ├── Dockerfile
            └── requirements.txt

docker-compose.yml

version: "3.8"

services:
...

  web:
    image: nginx:1.21.3-alpine
    ports:
      - 8000:8000
    volumes:
      - ./Service_ID:/workspace
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./docker/nginx/uwsgi_params:/etc/nginx/uwsgi_params
    working_dir: /workspace
    depends_on:
      - root

  root:
    build: ./docker/python
    command: uwsgi --socket :8001 --module root.wsgi --py-autoreload 1 --logto /tmp/tmp.log
    volumes:
      - ./Service_ID:/workspace
    expose:
      - "8001"
    depends_on:
      - db

volumes:
  db-store:

python/Dockerfile

FROM python:3.8.3

ENV PYTHONUNBUFFERED 1
RUN mkdir /workspace
WORKDIR /workspace
ADD requirements.txt /workspace/
RUN pip3 install --upgrade pip
RUN pip3 install -r requirements.txt
ADD . /workspace/

Service_ID/root/settings.py

IS_ON_LOG_FILE = True
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'file': {
            'format': '\t'.join([
                "[%(levelname)s]",
                "%(message)s",
            ])
        },
        'console': {
            'format': '\t'.join([
                "[%(levelname)s]",
                "%(message)s",
            ])
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'django.log'),
            'formatter': 'file',
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'console',
        },
    },

    'root': {
        'handlers': ['console', 'file'] if IS_ON_LOG_FILE else ['console'],
        'level': 'DEBUG',
    },
}

Вместо того, чтобы видеть консоли, как в проекте без Docker, я использую Django debug toolbar. В ней есть раздел Log.

Вернуться на верх