Postgresql Postgres以编程方式打开log_语句

Postgresql Postgres以编程方式打开log_语句,postgresql,logging,psycopg2,Postgresql,Logging,Psycopg2,我想打开修改数据库的所有SQL语句的日志记录。我可以通过在配置文件中设置log_语句标志在我自己的机器上实现这一点,但需要在用户的机器上启用它。如何从程序代码中启用它?(如果有必要的话,我会将Python与psycopg2一起使用。)这句话“需要在用户的机器上启用它”确实令人困惑。。。我想你的意思是“从用户(客户端)方面” 在Postgresql中,某些设置可以通过连接进行更改,但只能通过超级用户进行更改,并且仅适用于不需要重新启动服务器的设置。 我不确定这是否包括许多日志选项。您可以尝试以下方

我想打开修改数据库的所有SQL语句的日志记录。我可以通过在配置文件中设置log_语句标志在我自己的机器上实现这一点,但需要在用户的机器上启用它。如何从程序代码中启用它?(如果有必要的话,我会将Python与psycopg2一起使用。)

这句话“需要在用户的机器上启用它”确实令人困惑。。。我想你的意思是“从用户(客户端)方面”

在Postgresql中,某些设置可以通过连接进行更改,但只能通过超级用户进行更改,并且仅适用于不需要重新启动服务器的设置。 我不确定这是否包括许多日志选项。您可以尝试以下方法:

SELECT set_config('log_XXX', 'off', false);
其中,
log_XXX
将被相应的替换,而
'false
将被您要设置的值替换


如果那不起作用,我想你是走运了

我不确定我是否完全理解你的问题。我假设您的机器正在运行服务器,“用户”的机器正在运行某种类型的客户机。你的断言“需要在用户的机器上启用它”,让我完全不知所措。除非您需要驻留在用户机器上的每个用户的日志文件,否则该声明对我来说没有意义。你能详细说明一下你到底想完成什么吗?好的,澄清一下,我的机器不是任何类型的服务器,它只是我的开发箱。服务器和客户机都位于用户的站点,通常情况下,该站点可能在几千英里之外,并且没有设置为远程访问文件,因此手动编辑配置文件不是一个解决方案。