Postgresql

如何找出發生 PG 錯誤/警告/日誌的位置?

  • October 24, 2020

我有 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任何時間的內容,使用SETSQL 命令:

SET application_name TO 'Name of script with other details as needed';

因此,您實際上可以完全控制該 CSV 欄位中記錄的內容。

引用自:https://dba.stackexchange.com/questions/278582