如何启用日志记录所有执行的SQL PostgreSQL 8.3?
已编辑(更多信息) 我修改了这几行:
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
重启PostgreSQL服务…但是没有创建日志… 我用的是Windows Server 2003。
什么好主意吗?
如何启用日志记录所有执行的SQL PostgreSQL 8.3?
已编辑(更多信息) 我修改了这几行:
log_directory = 'pg_log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_statement = 'all'
重启PostgreSQL服务…但是没有创建日志… 我用的是Windows Server 2003。
什么好主意吗?
当前回答
供参考:其他解决方案只记录默认数据库(通常是postgres)中的语句,以记录其他语句;从他们的解决方案开始;然后:
ALTER DATABASE your_database_name
SET log_statement = 'all';
参考:https://serverfault.com/a/376888 / log_statement
其他回答
将log_statement设置为all:
错误报告和日志记录- log_statement
为了获得运行PostgreSQL 9.2的CentOS 6.4 (Red Hat 4.4.7-3)的更多详细信息,请参考此网页上的说明:
在/var/lib/pgsql/9.2/data/postgresql.conf中设置log_statement = 'all'和log_min_error_statement = error。 重新加载PostgreSQL配置。对我来说,这是通过运行/usr/pgsql-9.2/bin/pg_ctl reload -D /var/lib/pgsql/9.2/data/来完成的。 在/var/lib/ pg_sql /9.2/data/pg_log/中找到今天的日志
供参考:其他解决方案只记录默认数据库(通常是postgres)中的语句,以记录其他语句;从他们的解决方案开始;然后:
ALTER DATABASE your_database_name
SET log_statement = 'all';
参考:https://serverfault.com/a/376888 / log_statement
SELECT set_config('log_statement', 'all', true);
具有相应权限的用户可以使用以上查询后连接。这将影响日志记录,直到会话结束。
我试图在一些postgres配置文件中设置log_statement,但实际上该文件没有被我们的postgres读取。
我确认使用请求:
select *
from pg_settings
[...]
log_statement none # That was not the value i was expected for !!!
我用这种方式https://stackoverflow.com/a/41912295/2294168
command: postgres -c config_file=/etc/postgresql.conf