在剛安裝完的 PostgreSQL 中,通常只需要像下面這樣配置日志,並保持其他默認值,就基本可以滿足用戶大多數需求:
# 啟動日志收集, 這是一個后台進程,抓取發送到stderr的日志消息,並會將他們重定向到日志文件。 logging_collector = on
# 日志輸出路徑,可以是自定義絕對路徑或相對於數據目錄 PGDATA 的相對路徑
log_directory = 'log'
# 文件名,可以帶上格式字符串
log_filename = 'postgresql-%a.log'
# 當生成新的文件時,文件名已存在,則覆蓋同名舊文件名
log_truncate_on_rotation = on
#設置日志記錄內容,log_statement:none, ddl, mod, and all 默認是 none
# None表示不記錄,ddl記錄所有數據定義命令,比如CREATE,ALTER,和DROP語句,
# mod記錄所有ddl語句,加上數據修改語句INSERT,UPDATE等
# all記錄所有執行的語句,將此配置設置為all可跟蹤整個數據庫執行的SQL語句,但會對數據庫性能產生較大影響,生產環境不建議配置此值
log_statement = mod
# 以上設置完成之后,可以記錄到 update、drop 等,但是並不會記錄 select 語句,加上 log_min_duration_statement = 0 才可以記錄到select
log_min_duration_statement=0
完成以上設置后,7天后會有7個日志文件,分別為周一到周日,日志文件會不斷的覆蓋前一個星期,可以記錄到執行的所有sql語句