No meu ambiente, a maioria das consultas do PostgreSQL são geradas a partir de solicitações http.
No meu caso, cada solicitação http tem um cabeçalho exclusivo: X-Request-ID
Se houver um erro ou aviso nos logs do PostgreSQL, gostaria de ver o X-Request-ID relacionado para ver de onde veio a consulta sql.
Como adicionar uma mensagem extra como X-Request-ID para registrar mensagens do PostgreSQL?
Relacionado: https://serverfault.com/a/797611/90324
O Postgres não sabe nada sobre como seu aplicativo gera as solicitações SQL que são enviadas ao mecanismo de banco de dados. Portanto, ele também não tem ideia de que há uma solicitação HTTP por trás disso, muito menos o cabeçalho de tal solicitação.
As informações que podem ser colocadas em uma linha de log são fixadas e documentadas no manual
A única "variável de log" que você pode alterar dinamicamente é o nome do aplicativo. No entanto, isso requer que seu aplicativo defina isso sempre que processar uma solicitação.
Antes de executar uma consulta SQL, seu aplicativo precisa executar algo assim:
onde
'request-42'
é o ID da solicitação que você extraiu da solicitação HTTP.Depois de ter isso, você pode adicionar o
%a
elog_line_prefix
ele será mostrado no arquivo de log.