Postgresql开启SQL执行语句收集过程

Postgresql开启SQL执行语句收集过程

修改配置文件

1.打开Postgresql配置文件,如:C:\Program Files\PostgreSQL\14\data\postgresql.conf
2.修改如下,如果字段被#注释,则去掉#

log_directory = log
log_filename = postgresql-%Y-%m-%d_%H%M%S.log
log_statement = all

log_directory = 'log'log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,log_statement = 'all'

log_statement:log_statement参数控制记录哪些SQL语句。有效值是none(off),ddl,mod和all(所有语句)。
ddl记录所有数据定义语句,例如CREATE,ALTER和DROP语句。
mod记录所有ddl语句,以及数据修改语句,如INSERT,UPDATE,DELETE,TRUNCATE和COPY FROM。

查看日志

进入日志存放目录:PostgreSQL安装目录\data\log,如:C:\Program Files\PostgreSQL\14\data\log,打开目录下的日志文件查看即可

--查看配置文件路径

SHOW config_file;ALTER SYSTEM SET log_statement = 'all';

---查询系统配置变量

SELECT * FROM pg_settings;SHOW log_statement;SHOW log_filename;SHOW log_directory;SELECT name, setting, unit, short_desc, vartypeFROM pg_settingsWHERE name = 'log_statement';

#是否开启日志收集(包括系统日志、错误日志等)logging_collector = on#日志文件目录。相对于$PGDATA的子目录log_directory = 'log' #日志文件名log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'#日志文件权限。默认0600。如果希望服务器上其他用户也能读取则0644(存在泄露信息风险)log_file_mode = 0600#按日志文件时长切换日志。默认1d表示24小时。0为不按时长切换log_rotation_age = 1d#按日志文件大小切换日志。默认10MB。 0为不按大小切换log_rotation_size = 0#日志内容项定义log_line_prefix = '%m [%p] %a %u %d %r '#------- 以下与记录SQL语句密切相关 -------#记录SQL范围,类型可为:none, ddl, mod, alllog_statement = 'mod'#记录语句执行时长(单位毫秒)。超过本阈值才对语句执行时长进行记录# -1 is disabled, # 0 logs all statements and their durations# 0 logs only statements running at least this number of millisecondslog_min_duration_statement = 0#是否记录连接创建(例如登录)log_connections = on#是否记录连接端口(例如登出)log_connections = on#是否记录获取锁超时。当会话获取lock时长大于等于deadlock_timeout配置则记录log_lock_waits = on

Postgresql开启SQL执行语句收集过程