在Debian上配置PostgreSQL日志记录,你需要编辑PostgreSQL的配置文件postgresql.conf。以下是配置日志记录的步骤:
打开终端。
使用文本编辑器打开postgresql.conf文件。通常,该文件位于/etc/postgresql/<version>/main/目录中,其中<version>是你的PostgreSQL版本号。例如,如果你使用的是PostgreSQL 12,那么文件路径可能是/etc/postgresql/12/main/postgresql.conf。你可以使用以下命令之一打开文件:
sudo nano /etc/postgresql/<version>/main/postgresql.conf
或者
sudo vim /etc/postgresql/<version>/main/postgresql.conf
在postgresql.conf文件中找到以下参数并进行相应的配置:
logging_collector:设置为on以启用日志收集器。log_directory:设置日志文件的存储目录。例如,/var/log/postgresql/。log_filename:设置日志文件的命名格式。例如,postgresql-%Y-%m-%d_%H%M%S.log。log_statement:设置要记录的SQL语句类型。可选值包括all(记录所有语句)、ddl(仅记录数据定义语言语句,如CREATE、ALTER等)和none(不记录任何语句)。默认值为none。log_min_duration_statement:设置记录执行时间超过指定毫秒数的SQL语句。例如,设置为1000将记录执行时间超过1秒的语句。log_min_error_statement:设置记录产生错误的SQL语句的最小错误级别。可选值包括debug1、debug2、debug3、info、notice、warning、error、fatal和panic。默认值为error。log_connections:设置为on以记录数据库连接信息。log_disconnections:设置为on以记录数据库断开连接信息。例如,以下是一个配置示例:
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
log_min_duration_statement = 1000
log_min_error_statement = error
log_connections = on
log_disconnections = on
保存并关闭postgresql.conf文件。
重新加载PostgreSQL配置以使更改生效。在终端中运行以下命令:
sudo systemctl reload postgresql
或者
sudo service postgresql reload
现在,PostgreSQL将根据你的配置记录日志。你可以在/var/log/postgresql/目录(或你在log_directory参数中设置的其他目录)中找到日志文件。