Postgresql
如何找出發生 PG 錯誤/警告/日誌的位置?
我有 PostgreSQL CSV 根據這個結構記錄它的“錯誤”:https ://www.postgresql.org/docs/12/runtime-config-logging.html#RUNTIME-CONFIG-LOGGING-CSVLOG
它不包括執行查詢的腳本的文件路徑,所以除了來自“application_name”的模糊、基本上無用的提示之外,我不知道它發生在哪裡。
如何讓它記錄導致錯誤/警告/日誌的文件?
我的第一個想法是將我自己的列添加到表中,稱為
file_path
,但後來我意識到這無濟於事,因為將 csvlog 數據複製到我的表中的腳本不知道條目的來源,因為它們沒有被 PostgreSQL 記錄。在不知道錯誤發生在哪裡的情況下,我還不如根本沒有日誌。如何讓它記錄文件路徑而不僅僅是 application_name?我很困惑為什麼表結構/CSVlog 轉儲格式中缺少它。
“詳細資訊”列幾乎總是空的,所以那裡沒有文件路徑可供我提取。
伺服器不知道您在客戶端上執行的腳本文件的名稱是什麼,因此它無法報告該資訊。
您需要在客戶端記錄此類問題。
如何讓它記錄文件路徑而不僅僅是 application_name?
您似乎缺少的一條資訊是,任何腳本或更一般的 SQL 會話都可能會更改
application_name
任何時間的內容,使用SET
SQL 命令:SET application_name TO 'Name of script with other details as needed';
因此,您實際上可以完全控制該 CSV 欄位中記錄的內容。