application_name (string)
application_name可以是任意的小于NAMEDATALEN字字符 (標準編譯是64字符)的字符串。它通常由一個連接服務器后的的應用程序設置。 名字會記錄在pg_stat_activity和CSV日志條目中。 也可以通過log_line_prefix參數,包含在規律的日志條目中。 只有可打印的ASCII字符可以被用于application_name。 其他字符會被問號(?)替換。 application_name可以是任意小于NAMEDATALEN個字符(標準編譯中是 64 個字符)的字符串。這通常由一個應用通過到服務器的連接設置。該名稱將被顯示在pg_stat_activity視圖中并被包括在 CSV 日志項中。它也會被通過log_line_prefix包括在普通日志項中。只有可打印 ASCII 字符能被使用在application_name之中。其他字符將被替換為問號(?)。
debug_print_parse (boolean) debug_print_rewritten (boolean) debug_print_plan (boolean)
這些參數將會讓多種調試輸出被發出。當被設置時,它們為每一個被執行的查詢打印結果分析樹、查詢重寫器輸出或執行計劃。這些消息在LOG消息級別上被發出,因此默認情況下它們將出現在服務器日志中但不會被發送到客戶端。你可以通過調整client_min_messages和/或log_min_messages來改變這種情況。這些參數默認是關閉的。
debug_print_plan_on_error(boolean)
報錯時打印查詢計劃。默認是off。
debug_pretty_print (boolean)
當被設置時,debug_pretty_print會縮進由debug_print_parse、 debug_print_rewritten或 debug_print_plan產生的輸出。這將導致比關閉參數時使用的“緊湊”模式可讀性更強但是更長的輸出。它默認是打開的。
log_checkpoints (boolean)
導致檢查點和重啟點被記錄在服務器日志中。一些統計信息也被包括在日志消息中,包括寫入緩沖區的數據和寫它們所花的時間。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。默認值是關閉。
log_connections (boolean)
導致每一次嘗試對服務器的連接被記錄,客戶端認證的成功完成也會被記錄。只有超級用戶在會話開啟時可以改變這個參數,并且在所有會話中不能改變。缺省是off。注意某些客戶端程序(例如telesql)在要求密碼時會嘗試連接兩次,因此重復的“收到連接”消息并不一定表示一個錯誤。
log_disconnections (boolean)
記錄會話終止原因。日志輸出提供信息類似于log_connections,以及會話持續時間。只有超級用戶在會話開啟時可以改變這個參數,并且在所有會話中不能改變。缺省是off。
log_duration (boolean)
導致每一個完成的語句的持續時間被記錄。默認值是off。只有超級用戶可以改變這個設置。對于使用擴展查詢協議的客戶端,解析、綁定和執行步驟的持續時間將被獨立記錄。注意設置這個選項和設置log_min_duration_statement為零之間的區別是,超過log_min_duration_statement強制查詢的文本被記錄,但這個選項不會。因此,如果log_duration為on并且log_min_duration_statement為正值,所有持續時間都將被記錄,但是只有超過閾值的語句才會被記錄查詢文本。這種行為有助于在高負載安裝中收集統計信息。
log_error_verbosity (enum)
控制為每一個被記錄的消息要寫入到服務器日志的細節量。有效值是TERSE、DEFAULT和VERBOSE,每一個都為顯示的消息增加更多域。TERSE排除記錄DETAIL、HINT、QUERY和CONTEXT錯誤信息。VERBOSE輸出包括SQLSTATE錯誤碼以及產生錯誤的源代碼文件名、函數名和行號。只有超級用戶能夠更改這個設置。
log_hostname (boolean)
默認情況下,連接日志消息只顯示連接主機的IP 地址。打開這個參數將導致也記錄主機名。注意根據你的主機名解析設置,這可能會導致很微小的性能損失。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。
log_line_prefix (string)
這是一個printf風格的字符串,它在每個日志行的開頭輸出。%字符開始“轉義序列”,它將被按照下文描述的替換成狀態信息。未識別的轉義被忽略。其他字符被直接復制到日志行。某些轉義只被會話進程識別并且被主服務器進程等后臺進程當作空。通過指定一個在%之后和該選項之前的數字可以讓狀態信息左對齊或右對齊。 負值將導致在右邊用空格填充狀態信息已達到最小寬度,而正值則在左邊填充。填充對于日志文 件的人類可讀性大有幫助。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。 默認值是'%m [%p] ',它記錄時間戳和進程ID。轉義效果只限會話%a應用名是%u用戶名是%d數據庫名是%r遠程主機名或 IP 地址,以及遠程端口是%h遠程主機名或 IP 地址是%p進程 ID否%t無毫秒的時間戳否%m帶毫秒的時間戳否%n帶毫秒的時間戳(作為 Unix 時間戳)否%i命令標簽:會話當前命令的類型是%eSQLSTATE 錯誤代碼否%c會話 ID:見下文否%l對每個會話或進程的日志行號,從 1 開始否%s進程開始的時間戳否%v虛擬事務 ID (backendID/localXID)否%x事務 ID (如果未分配則為 0)否%q不產生輸出,但是告訴非會話進程在字符串的這一點停止;會話進程忽略否%%純文字 %否%c轉義打印一個準唯一的會話標識符,它由兩個 4 字節的十六進制數(不帶先導零)組成,以點號分隔。這些數字是進程啟動時間和進程 ID,因此%c也可以被用作保存打印這些項的方式的空間。例如,要從pg_stat_activity生成會話標識符,使用這個查詢:SELECT to_hex(trunc(EXTRACT(EPOCH FROM backend_start))::integer) || '.' || to_hex(pid) FROM pg_stat_activity;提示如果你為log_line_prefix設置了非空值,你通常應該讓它的最后一個字符為空格,這樣用以提供和日志行的剩余部分的視覺區別。也可以使用標點符號。提示Syslog產生自己的時間戳和進程 ID 信息,因此如果你記錄到syslog你可能不希望包括哪些轉義。提示包含僅在會話(后端)上下文(如用戶或數據庫名稱)中可用的信息時, %q轉義非常有用。例如:log_line_prefix = '%m [%p] %q%u@%d/%a '
log_lock_waits (boolean)
控制當一個會話為獲得一個鎖等到超過deadlock_timeout時,是否要產生一個日志消息。這有助于決定是否所等待造成了性能低下。默認值是off。只有超級用戶可以更改此設置。
log_statement (enum)
控制哪些SQL 語句被記錄。有效值是 none (off)、ddl、mod和 all(所有語句)。ddl記錄所有數據定義語句,例如CREATE、ALTER和 DROP語句。mod記錄所有ddl語句,外加數據修改語句例如INSERT, UPDATE、DELETE、TRUNCATE, 和COPY FROM。 如果PREPARE、EXECUTE和 EXPLAIN ANALYZE包含合適類型的命令,它們也會被記錄。對于使用擴展查詢協議的客戶端,當收到一個執行消息時會產生日志并且會包括綁定參數的值(任何內嵌的單引號會被雙寫)。默認值是none。只有超級用戶可以改變這個設置。注意即使設置了log_statement=all,包含 簡單語法錯誤的語句也不會被記錄。因為僅在完成基本的語法分析并 確定了語句類型之后才記錄日志。在使用擴展查詢協議的情況下,在 執行階段之前(語法分析或規劃階段)同樣不會記錄。將 log_min_error_statement設為ERROR 或更低才能記錄這些語句。 即使使用log_statement = all設置,包含簡單語法錯誤的語句也不會被記錄。這是因為只有在完成基本語法解析并確定了語句類型之后才會發出日志消息。在擴展查詢協議的情況下,在執行階段之前(即在解析分析或規劃期間)出錯的語句也不會被記錄。將log_min_error_statement設置為ERROR(或更低)來記錄這種語句。
log_replication_commands (boolean)
導致每個復制命令記錄在服務器日志中。缺省值是off。只有超級用戶可以修改這個設置。
log_temp_files (integer)
控制記錄臨時文件名和尺寸。臨時文件可以被創建用來排序、哈希和存儲臨時查詢結果。當每一個臨時文件被刪除時都會制作一個日志項。一個零值記錄所有臨時文件信息,而正值只記錄尺寸大于或等于指定千字節數的文件。默認設置為-1,它禁用這種記錄。只有超級用戶可以更改這個設置。
log_timezone (string)
設置在服務器日志中寫入的時間戳的時區。和TimeZone不同,這個值是集簇范圍的,因此所有會話將報告一致的時間戳。內建默認值是GMT,但是通常會被在postgresql.conf中覆蓋。initdb將安裝一個對應于其系統環境的設置。這個參數只能在postgresql.conf文件中或在服務器命令行上設置。