如何从PostgreSQL语句日志中读取事务



我通过SET log_statement = 'all';启用postgresSQL语句日志,并为使用Hibernate的Java应用程序接收到如下输出。使用默认日志格式,Postgres版本为13.1

我猜方括号里的数字是threadID?我看到有多个BEGIN和多个COMMIT分散,没有明确的ID或订单

有没有办法从这个日志中查看事务的范围?(实际语句和值已删除(

2021-11-08 05:45:52.827 UTC [107] LOG:  execute S_4: BEGIN
2021-11-08 05:45:52.841 UTC [107] LOG:  execute <unnamed>: 
RETURNING *
2021-11-08 05:45:52.841 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:52.927 UTC [107] LOG:  execute <unnamed>: 
RETURNING *
2021-11-08 05:45:52.927 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:52.975 UTC [107] LOG:  execute <unnamed>: 
RETURNING *
2021-11-08 05:45:52.975 UTC [107] DETAIL:  parameters:
2021-11-08 05:45:54.209 UTC [107] LOG:  execute <unnamed>: 
2021-11-08 05:45:54.209 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:54.251 UTC [107] LOG:  execute <unnamed>: 
2021-11-08 05:45:54.251 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:54.297 UTC [107] LOG:  execute <unnamed>:
2021-11-08 05:45:54.297 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:54.565 UTC [107] LOG:  execute <unnamed>: 
2021-11-08 05:45:54.565 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:55.164 UTC [194] LOG:  execute <unnamed>: SET extra_float_digits = 3
2021-11-08 05:45:55.209 UTC [194] LOG:  execute <unnamed>: SET application_name = 'PostgreSQL JDBC Driver'
2021-11-08 05:45:55.253 UTC [194] LOG:  execute <unnamed>: BEGIN
2021-11-08 05:45:55.257 UTC [194] LOG:  execute <unnamed>: 
2021-11-08 05:45:55.257 UTC [194] DETAIL:  
2021-11-08 05:45:55.308 UTC [194] LOG:  execute <unnamed>: 
2021-11-08 05:45:55.308 UTC [194] DETAIL:  parameters: 
2021-11-08 05:45:55.354 UTC [194] LOG:  execute <unnamed>: 
RETURNING *
2021-11-08 05:45:55.354 UTC [194] DETAIL:  parameters: 
2021-11-08 05:45:55.412 UTC [195] LOG:  execute <unnamed>: SET extra_float_digits = 3
2021-11-08 05:45:55.451 UTC [195] LOG:  execute <unnamed>: SET application_name = 'PostgreSQL JDBC Driver'
2021-11-08 05:45:55.577 UTC [194] LOG:  execute <unnamed>: 
2021-11-08 05:45:55.577 UTC [194] DETAIL:  
2021-11-08 05:45:55.617 UTC [194] LOG:  execute S_1: COMMIT
2021-11-08 05:45:56.393 UTC [196] LOG:  execute <unnamed>: SET extra_float_digits = 3
2021-11-08 05:45:56.435 UTC [196] LOG:  execute <unnamed>: SET application_name = 'PostgreSQL JDBC Driver'
2021-11-08 05:45:56.486 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:56.486 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:56.529 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:56.529 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:56.571 UTC [196] LOG:  execute <unnamed>: BEGIN
2021-11-08 05:45:56.572 UTC [196] LOG:  execute <unnamed>: 
RETURNING *
2021-11-08 05:45:56.572 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:56.622 UTC [196] LOG:  execute S_1: COMMIT
2021-11-08 05:45:56.650 UTC [197] LOG:  execute <unnamed>: SET extra_float_digits = 3
2021-11-08 05:45:56.677 UTC [107] LOG:  execute <unnamed>: 
2021-11-08 05:45:56.677 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:56.690 UTC [197] LOG:  execute <unnamed>: SET application_name = 'PostgreSQL JDBC Driver'
2021-11-08 05:45:56.724 UTC [107] LOG:  execute <unnamed>: 
2021-11-08 05:45:56.724 UTC [107] DETAIL:  parameters: 
2021-11-08 05:45:58.603 UTC [196] LOG:  execute <unnamed>: BEGIN READ ONLY
2021-11-08 05:45:58.604 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.604 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:58.653 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.653 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:58.710 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.710 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:58.751 UTC [196] LOG:  execute S_1: COMMIT
2021-11-08 05:45:58.792 UTC [196] LOG:  execute <unnamed>: BEGIN READ ONLY
2021-11-08 05:45:58.792 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.792 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:58.836 UTC [196] LOG:  execute S_1: COMMIT
2021-11-08 05:45:58.880 UTC [196] LOG:  execute <unnamed>: BEGIN READ ONLY
2021-11-08 05:45:58.881 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.881 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:58.924 UTC [196] LOG:  execute S_1: COMMIT
2021-11-08 05:45:58.965 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:58.965 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:59.008 UTC [196] LOG:  execute <unnamed>: 
2021-11-08 05:45:59.008 UTC [196] DETAIL:  parameters: 
2021-11-08 05:45:59.192 UTC [107] LOG:  execute S_1: COMMIT

根据log_line_prefix中的Postgres文档,您可以设置Postgres如何打印日志,例如日志数据、进程id、用户名等

您可以将%x用于日志事务id

最新更新