问题在于:我需要知道如何将执行的.sql脚本中所有的PostgreSQL输出记录到文件中,包括错误和查询结果。
我已经使用\o和\o开放和关闭标签来包围我的脚本,但这只记录了查询结果,对于成功和失败的情况没有任何帮助。我尝试使用Unix工具将调用PostgreSQL的结果导入管道中,例如:
$~: psql < filename.sql | tee &> filename.log
我已经尝试了多种方法,但都没有成功。在这种情况下,Filename.log最终完全为空。
我不想激活通用日志记录,因为我只关心我编写的脚本的成功/失败,并将此记录下来以供将来参考。
在Oracle中,我使用SPOOL,在MySQL中我使用TEE。这两个对我的需求足够好,但\o没有这个功能,激活日志记录也没有这个功能,因为它记录到一个文件中,而我希望我的日志根据产生这些日志的文件分开。
任何帮助将不胜感激。
编辑:我正在使用的版本是9.1
编辑:我遇到的问题是使用-f和使用<来执行.sql文件会给我基本相同的结果;它不记录错误,只记录查询结果。我需要以某种方式让stderr(如果是这样使用的)将其消息打印到文件中,而不仅仅是命令行,使得该文件在本质上看起来与运行该文件的命令行结果相同,其中混合了查询结果和错误。我需要这样做的原因是它使得调试.sql文件更容易,并且允许我保持有针对性的记录,同时避免通用错误日志记录。