將PostgreSQL數據庫安裝後,須要進行一些關於數據庫日誌的配置,將postgresql.conf文件中,關於日誌的配置選項詳解,記錄以下:sql
1.logging_collector = on/off 是否將日誌重定向至文件中,默認是off(修改後需重啓DB)
2.log_directory='pg_log' 日誌文件目錄,默認是${PGDATA}的相對路徑,即${PGDATA}/pg_log,也能夠改成絕對路徑
3.log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 日誌文件命名形式,使用默認便可
4.log_rotation_age = 1d 單個日誌文件的生存期,默認1天,在日誌文件大小沒有達到log_rotation_size時,一天只生成一個日誌文件
5.log_rotation_size = 10MB 單個日誌文件的大小,若是時間沒有超過log_rotation_age,一個日誌文件最大隻能到10M,不然將新生成一個日誌文件。
6.log_truncate_on_rotation = off 當日志文件已存在時,該配置若是爲off,新生成的日誌將在文件尾部追加,若是爲on,則會覆蓋原來的日誌。
7.log_lock_waits = off 控制當一個會話等待時間超過deadlock_timeout而被鎖時是否產生一個日誌信息。在判斷一個鎖等待是否會影響性能時是有用的,缺省是off。
8.log_statement = 'none' # none, ddl, mod, all 控制記錄哪些SQL語句。none不記錄,ddl記錄全部數據定義命令,好比CREATE,ALTER,和DROP 語句。mod記錄全部ddl語句,加上數據修改語句INSERT,UPDATE等,all記錄全部執行的語句,將此配置設置爲all可跟蹤整個數據庫執行的SQL語句。
9.log_duration = off 記錄每條SQL語句執行完成消耗的時間,將此配置設置爲on,用於統計哪些SQL語句耗時較長。
10.log_min_duration_statement = -1 # -1 is disabled, 0 logs all statements and their durations, > 0 logs only statements running at least this number of milliseconds
-1表示不可用,0將記錄全部SQL語句和它們的耗時,>0只記錄那些耗時超過(或等於)這個值(ms)的SQL語句。使用log_statement和log_duration也可以統計SQL語句及耗時,log_min_duration_statement會將SQL語句和耗時在同一行記錄,更方便閱讀。
11.log_connections = off 是否記錄鏈接日誌
12.log_disconnections = off 是否記錄鏈接斷開日誌
13.log_line_prefix = '%m %p %u %d %r ' 日誌輸出格式(%m,%p實際意義配置文件中有解釋),可根據本身須要設置(可以記錄時間,用戶名稱,數據庫名稱,客戶端IP和端口,方便定位問題)
14.log_timezone = 'Asia/Shanghai' 日誌時區,最好和服務器設置同一個時區,方便問題定位數據庫