Django/Docker/Logging: ValueError: Unable to configure handler 'files_debug''
Django/Docker/Logging: ValueError: Unable to configure handler 'files_debug''
我尝试在我的 django 项目 (Django/Postgresql/Docker/Celery) 中实现日志记录,但是当我在 linux 服务器中部署我的项目时出现错误(但它在本地工作)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/app/logs/debug.log'
我已阅读此 SO post 中的解决方案:
但首先我什至不明白为什么这个解决方案应该有效并且我没有设法在我的项目中实现它。
我使用 Docker/docker-compose 所以我用 Dockerfile 安装 netcat 然后尝试 运行 nc -lU /logs/debug.log /logs/info.log 但它失败了(没有这样的文件或目录)
Docker 文件
# 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': '{',
}
},
}
...
事实上,我的 .gitignore 文件排除了日志文件夹和 .log 文件。
更改到 logsfiles 文件夹和调试和信息(无扩展名)文件,解决问题,我能够 运行 容器
然而,这些文件中什么也没写...
我尝试在我的 django 项目 (Django/Postgresql/Docker/Celery) 中实现日志记录,但是当我在 linux 服务器中部署我的项目时出现错误(但它在本地工作)
FileNotFoundError: [Errno 2] No such file or directory: '/usr/src/app/logs/debug.log'
我已阅读此 SO post 中的解决方案:
但首先我什至不明白为什么这个解决方案应该有效并且我没有设法在我的项目中实现它。 我使用 Docker/docker-compose 所以我用 Dockerfile 安装 netcat 然后尝试 运行 nc -lU /logs/debug.log /logs/info.log 但它失败了(没有这样的文件或目录)
Docker 文件
# 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': '{',
}
},
}
...
事实上,我的 .gitignore 文件排除了日志文件夹和 .log 文件。 更改到 logsfiles 文件夹和调试和信息(无扩展名)文件,解决问题,我能够 运行 容器
然而,这些文件中什么也没写...