我的计算机上有一个PostgreSQL数据库,我有一个运行查询的应用程序。
如何查看我的数据库上运行了哪些查询?
我使用Linux计算机和pgadmin。
答案 0 :(得分:47)
开启服务器日志:
log_statement = all
这将记录对数据库服务器的每次调用。
我不会在生产服务器上使用log_statement = all
。生成大量日志文件
The manual about logging-parameters:
log_statement
(enum
)控制记录哪些SQL语句。有效值为
none
(关闭),ddl
,mod
和all
(所有语句)。 [...]
重置log_statement
参数需要重新加载服务器(SIGHUP
)。重启不是必要的。阅读the manual on how to set parameters。
不要将服务器日志与pgAdmin的日志混淆。两件不同的事情!
如果您可以访问文件(可能不是远程服务器的情况)并且正确设置,您还可以查看pgAdmin中的服务器日志文件。看看:Tools -> Server status
。在manual for pgAdmin III中了解有关服务器状态窗口的更多信息。
我更喜欢用vim
(或您选择的编辑/读者)阅读服务器日志文件。
答案 1 :(得分:40)
与日志记录技术相关时,PostgreSql非常先进
日志存储在Installationfolder/data/pg_log folder
中。日志设置放在postgresql.conf
文件中。
日志格式通常设置为stderr
。但建议使用CSV日志格式。为了在
log_destination = 'stderr,csvlog'
logging_collector = on
为了记录所有查询,对于新安装非常有用,请设置min。查询的执行时间
log_min_duration_statement = 0
要在数据库中查看活动查询,请使用
SELECT * FROM pg_stat_activity
要记录特定查询,请设置查询类型
log_statement = 'all' # none, ddl, mod, all
有关记录查询的详细信息,请参阅PostgreSql Log。
答案 2 :(得分:4)
我在brew上的mac安装上找到了/usr/local/var/log/postgres.log中的日志文件。
答案 3 :(得分:0)
在Postgres 10.6中使用 Django 时,默认情况下启用了日志记录,而我能够做到:
tail -f /var/log/postgresql/*
Ubuntu 18.04,Django 2 +,python3 +
答案 4 :(得分:0)
如果在postgresql.conf中使用此日志目录名称启用了日志配置,则可以在pg_log文件夹中看到。