【问题标题】:Django/Docker/Logging: ValueError: Unable to configure handler 'files_debug''Django/Docker/Logging:ValueError:无法配置处理程序“files_debug”
【发布时间】:2021-09-17 20:08:19
【问题描述】:

我尝试在我的 django 项目(Django/Postgresql/Docker/Celery)中实现日志记录,但是当我在 linux 服务器中部署我的项目时出错(但它在本地工作)

FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/app/logs/debug.log'

我在这篇 SO 帖子中读到了一个解决方案:Django: Unable to configure handler 'syslog'

但是首先我什至不明白为什么这个解决方案应该有效,而且我没有设法在我的项目中实施它。 我使用 Docker/docker-compose 所以我用 Dockerfile 安装 netcat 然后尝试 RUN nc -lU /logs/debug.log /logs/info.log 但它失败了(没有这样的文件或目录)

Dockerfile

# Pull the official base image
FROM python:3.8.3-alpine

# Set a work directory
WORKDIR /usr/src/app

# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1

# install psycopg2 dependencies
RUN apk update && apk add postgresql-dev gcc g++ python3-dev musl-dev netcat-openbsd

# create UNIX socket for logs files
#RUN nc -lU /logs/debug.log /logs/info.log
...

settings.py

...
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'loggers': {
        'django': {
            'handlers':['files_info','files_debug'],
            'propagate': True,
            'level':'INFO',
        },
    },
    'handlers': {
        'files_info': {
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': './logs/info.log',
            'formatter': 'mereva',
        },
        'files_debug': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': './logs/debug.log',
            'formatter': 'mereva',
        },
    },
    'formatters': {
        'mereva': {
            'format': '{levelname} {asctime} {module} {message}',
            'style': '{',
        }
    },
}
...

【问题讨论】:

  • 在您的 django 设置中,您提供的路径为 ./logs/debug.log,但在您的 docker 文件中,您提供的是 /logs/debug.log
  • 我尝试改变,但也没有用

标签: django docker logging docker-compose netcat


【解决方案1】:

事实上,我的 .gitignore 文件排除了日志文件夹和 .log 文件。 更改为 logsfiles 文件夹和调试和信息(不带扩展名)文件,解决问题,我能够运行容器

尽管如此,这些文件中没有任何内容...

【讨论】:

  • 阻止构建日志文件夹的不是 .gitignore 而是 .dockerignore...抱歉造成混淆
猜你喜欢
  • 1970-01-01
  • 2022-11-16
  • 2021-08-11
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 2018-07-24
  • 1970-01-01
相关资源
最近更新 更多