如何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_destination
variables - 确保你打开了
logging_collector
- 还要确保
pg_log
目录已经存在于data
目录中,并且postgres用户可以写入它。
编辑你的/etc/postgresql/9.3/main/postgresql.conf
,如下改变行。
注意 :如果您没有findpostgresql.conf
文件,只需在terminal中键入$locate postgresql.conf
-
#log_directory = 'pg_log'
log_directory = 'pg_log'
-
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
-
#log_statement = 'none'
log_statement = 'all'
-
#logging_collector = off
logging_collector = on
-
可选 :
SELECT set_config('log_statement', 'all', true);
-
sudo /etc/init.d/postgresql restart
或sudo service postgresql restart
-
在postgresql的消息查询
select 2+2
-
查找当前日志
/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)的更多细节,根据这个网页上的说明:
- 在
/var/lib/pgsql/9.2/data/postgresql.conf
设置(取消注释)log_statement = 'all'
和log_min_error_statement = error
。 - 重新加载PostgreSQLconfiguration。 对我来说,这是通过运行
/usr/pgsql-9.2/bin/pg_ctl reload -D /var/lib/pgsql/9.2/data/
。 - 查找今天的日志
/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