2010-05-22 124 views
0

我想打开所有修改数据库的SQL语句的日志记录。我可以通过在配置文件中设置log_statement标志来在自己的机器上获得该标志,但需要在用户的机器上启用它。你如何从程序代码中启用它? (我使用Python与psycopg2如果它很重要。)Postgres以编程方式打开log_statement

+0

我不确定我是否理解你的所有问题。我假设你的机器正在运行“用户”机器运行某种客户机的服务器。 “你需要在用户的机器上启用它”,我完全被你的断言弄糊涂了。除非您想要驻留在用户计算机上的每个用户的日志文件,否则该声明对我来说没有意义。可以详细阐述一下你想完成什么? – yarmiganosca 2010-05-22 19:28:01

+0

对,澄清,我的机器不是任何一种服务器,它只是我的开发盒。服务器和客户端机器都驻留在用户的站点上,通常情况下,这些站点可能在几千英里之外,并且不能远程访问文件,因此手动编辑配置文件不是解决方案。 – rwallace 2010-05-23 15:10:07

回答

1

“它需要在用户的机器上启用”短语是混乱的,确实是......我想你的意思是从用户”(客户端)方“

在Postgresql中,一些server run-time parameters可以从连接更改,但只能从超级用户更改 - 仅适用于那些不需要重新启动服务器的设置。 我不确定那是否包含许多日志选项。你可以尝试的东西,如:

SELECT set_config('log_XXX', 'off', false); 

其中log_XXX是由相应的logging setting,并且'false'由你想设置的值来代替。

如果这不起作用,我想你是不走运的。