I can not find a way to log ALL output from a psql session when running a script. Basically, I'm running a large deployment script that has thousands of SQL statements and I need to know which statements fail. I want the output generated when running
the script to be saved to a log file so that I can grep through the output and look for errors. I don't want the script to stop processing using the ON_ERROR_STOP variable. It doesn't matter to me if the script is run interactively or not.
I've tried redirecting the output to a log file, but this only gets the SQL statements issued and their results and not the errors that may be encountered:
psql -f test_psql_deployment_logging.sql > test_psql_deployment_logging.log
In my SQL script I've set the following variables, but none of them seem to make a difference:
\set VERBOSITY verbose
\set ECHO all
I've tried using the \o option in my script to save the results to a file, but as the documentation mentions it doesn't output error messages :
"Query results" includes all tables, command responses, and notices obtained from the database server, as well as output of various backslash commands that query the database (such as \d), but not error messages.
Using the -L gets me closer, but it too does not include error output, only the queries issued and query results:
psql -f test_psql_deployment_logging.sql -L test_psql_deployment_logging.log
Any suggestions on how to get this to work?
Thanks,
Bobby
|