Postgresql
在 Postgres 中編寫自定義伺服器日誌
我們設置了一個 Postgres 實例,它直接將日誌寫入 AWS CloudWatch。我們希望能夠編寫自己的日誌以進行自動化處理。不幸的是,我們目前的實驗似乎只在客戶端(呼叫者)端生成日誌:
CREATE or replace FUNCTION logInfo() RETURNS void AS $$ BEGIN raise notice 'Hello World!'; raise info 'Hello World!'; END; $$ LANGUAGE plpgsql; select logInfo();
有沒有辦法在伺服器端寫日誌?
請記住您的
log_min_messages
和client_min_messages
設置。plpgsql raise能夠使用級別 DEBUG、LOG、INFO、NOTICE、WARNING 和 EXCEPTION(根據這些設置產生錯誤)。如果要向日誌寫入內容,則需要將其提高到高於log_min_messages
.例如,
raise log 'hello world'
將編寫如下行(log_line_prefix 被我刪除):
LOG: Hello World! CONTEXT: PL/pgSQL function loginfo() line 3 at RAISE STATEMENT: select logInfo();