如何自定义 postgres 日志记录级别?
How to customize postgres logging level?
我很难在 Docker 中配置 postgres 日志记录级别。从日志级别来看,我的意思是说我的查询类似于 - SELECT COUNT(*) FROM tablethatnotexist
然后在数据库驱动程序返回的输出中将以某种方式告诉我 - relation "tablethatnotexist" does not exist
.
到这里为止还不错,但有时在数据库中获取相同的日志只是令人恼火。我的意思是我知道我用不存在的关系查询了数据库并且我也得到了回应。所以得到像 -
这样的日志
没有任何意义,而且它只会在文件中添加额外的日志。
我四处搜索,但我找不到禁用额外日志记录的方法,或者只是将其设置为仅记录严重错误,因为数据库驱动程序处理的错误最多。
我的开发环境-
- 使用docker撰写。
Docker撰写Postgres
服务栏目-
postgres:
build: ./postgresql
container_name: postgres
ports:
- '127.0.0.1:5432:5432'
volumes:
- pg-data:/var/lib/postgresql/data
postgresql
目录有两个文件,Dockerfile
和init.sql
。 Dockerfile
代码-
FROM postgres:14-alpine
ENV POSTGRES_USER: ...
ENV POSTGRES_PASSWORD: ...
ENV POSTGRES_DB: ...
COPY *.sql /docker-entrypoint-initdb.d/
请帮助如何自定义 postgres
以仅记录关键日志。
如果使用 Docker Compose,您可以将此行添加到 docker-compose.yaml 文件中:
command: ["postgres", "-c", "log_statement=none"]
并且您的所有查询都将写入容器日志文件。
在 official docs 您可以找到详细信息
我很难在 Docker 中配置 postgres 日志记录级别。从日志级别来看,我的意思是说我的查询类似于 - SELECT COUNT(*) FROM tablethatnotexist
然后在数据库驱动程序返回的输出中将以某种方式告诉我 - relation "tablethatnotexist" does not exist
.
到这里为止还不错,但有时在数据库中获取相同的日志只是令人恼火。我的意思是我知道我用不存在的关系查询了数据库并且我也得到了回应。所以得到像 -
这样的日志没有任何意义,而且它只会在文件中添加额外的日志。
我四处搜索,但我找不到禁用额外日志记录的方法,或者只是将其设置为仅记录严重错误,因为数据库驱动程序处理的错误最多。
我的开发环境-
- 使用docker撰写。
Docker撰写Postgres
服务栏目-
postgres:
build: ./postgresql
container_name: postgres
ports:
- '127.0.0.1:5432:5432'
volumes:
- pg-data:/var/lib/postgresql/data
postgresql
目录有两个文件,Dockerfile
和init.sql
。 Dockerfile
代码-
FROM postgres:14-alpine
ENV POSTGRES_USER: ...
ENV POSTGRES_PASSWORD: ...
ENV POSTGRES_DB: ...
COPY *.sql /docker-entrypoint-initdb.d/
请帮助如何自定义 postgres
以仅记录关键日志。
如果使用 Docker Compose,您可以将此行添加到 docker-compose.yaml 文件中:
command: ["postgres", "-c", "log_statement=none"]
并且您的所有查询都将写入容器日志文件。
在 official docs 您可以找到详细信息