如何loggingPostgreSQL查询?

如何启用由PostgreSQL 8.3执行的所有SQL的logging?

编辑(更多信息)我改变了这些行:

log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_statement = 'all' 

并重新启动PostgreSQL服务…但没有创build日志…我正在使用Windows Server 2003。

有任何想法吗?

在您的data/postgresql.conf文件中,将log_statement设置更改为'all'


编辑

看看你的新信息,我想说可能有一些其他的设置来validation:

  • 确保你打开了log_destinationvariables
  • 确保你打开了logging_collector
  • 还要确保pg_log目录已经存在于data目录中,并且postgres用户可以写入它。

编辑你的/etc/postgresql/9.3/main/postgresql.conf ,如下改变行。

注意 :如果您没有findpostgresql.conf文件,只需在terminal中键入$locate postgresql.conf

  1. #log_directory = 'pg_log' log_directory = 'pg_log'

  2. #log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

  3. #log_statement = 'none' log_statement = 'all'

  4. #logging_collector = off logging_collector = on

  5. 可选SELECT set_config('log_statement', 'all', true);

  6. sudo /etc/init.d/postgresql restart sudo service postgresql restart

  7. 在postgresql的消息查询select 2+2

  8. 查找当前日志/var/lib/pgsql/9.2/data/pg_log/

日志文件往往会增长很多,并可能会杀死你的机器。 为了您的安全,请编写一个bash脚本来删除日志并重新启动postgresql服务器。

谢谢@paul,@Jarret Hardie,@Zoltán,@Rix Beck,@Latif Premani

 SELECT set_config('log_statement', 'all', true); 

连接后有相应的用户权限可以使用上面的查询。 这将影响日志,直到会话结束。

log_statement设置为all

错误报告和日志logging – log_statement

您还需要在PostgreSQL中添加这些行并重新启动服务器:

 log_directory = 'pg_log' log_filename = 'postgresql-dateformat.log' log_statement = 'all' logging_collector = on 

+1以上的答案。 我使用以下configuration

 log_line_prefix = '%t %c %u ' # time sessionid user log_statement = 'all' 

只是想了解运行PostgreSQL 9.2的CentOS 6.4(Red Hat 4.4.7-3)的更多细节,根据这个网页上的说明:

  1. /var/lib/pgsql/9.2/data/postgresql.conf设置(取消注释) log_statement = 'all'log_min_error_statement = error
  2. 重新加载PostgreSQLconfiguration。 对我来说,这是通过运行/usr/pgsql-9.2/bin/pg_ctl reload -D /var/lib/pgsql/9.2/data/
  3. 查找今天的日志/var/lib/pgsql/9.2/data/pg_log/

仅供参考:其他解决scheme将只logging来自默认数据库的语句(通常是postgres以logging其他数据; 从他们的解决办法开始 然后:

 ALTER DATABASE your_database_name SET log_statement = 'all'; 

参考: https : log_statement / log_statement