How to capture an interactive psql session in a log file?

Started by Gordon Shannonabout 17 years ago8 messagesgeneral
Jump to latest
#1Gordon Shannon
gordo169@gmail.com

What I'm trying to do doesn't seem like it should be that difficult or
unusual, but I can't seem to find the right combination of commands to make
it happen. I want to have a log file that captures everything from an
interactive psql session. Running 8.3.7 with bash shell on Linux.

If I use \o <file> or \o |tee <file, it doesn't capture my entered commands,
or any error text.

I can use some fancy bash to capture stderr in the file too, and then error
text goes there, but no matter what, neither the commands I enter nor the
psql prompt will be captured in the log file.

This is even when using -a, or \set ECHO all. It's as if my entered
commands neither go to stdout or stderr.

Has anyone solved this issue before?

Thanks in advance
Gordon
--
View this message in context: http://www.nabble.com/How-to-capture-an-interactive-psql-session-in-a-log-file--tp22862412p22862412.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

In reply to: Gordon Shannon (#1)
Re: How to capture an interactive psql session in a log file?

On Thu, Apr 02, 2009 at 10:55:10PM -0700, Gordon Shannon wrote:

Has anyone solved this issue before?

have you seen program "script"?

usage:

just run script
you will get shell. now run your command you want to capture everything
from - it will work as usual.
after you finish - exit the "script-shell", and check the generated
typescript file

Best regards,

depesz

--
Linkedin: http://www.linkedin.com/in/depesz / blog: http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007

#3Gordon Shannon
gordo169@gmail.com
In reply to: hubert depesz lubaczewski (#2)
Re: How to capture an interactive psql session in a log file?

That does the trick, awesome!

I do think it would be great if psql had a "stderr" capture in addition to
stdout.

Thanks

hubert depesz lubaczewski-2 wrote:

On Thu, Apr 02, 2009 at 10:55:10PM -0700, Gordon Shannon wrote:

Has anyone solved this issue before?

have you seen program "script"?

usage:

just run script
you will get shell. now run your command you want to capture everything
from - it will work as usual.
after you finish - exit the "script-shell", and check the generated
typescript file

Best regards,

depesz

--
Linkedin: http://www.linkedin.com/in/depesz / blog:
http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl /
gg:6749007

--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

--
View this message in context: http://www.nabble.com/How-to-capture-an-interactive-psql-session-in-a-log-file--tp22862412p22862519.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.

#4Scott Marlowe
scott.marlowe@gmail.com
In reply to: Gordon Shannon (#1)
Re: How to capture an interactive psql session in a log file?

On Thu, Apr 2, 2009 at 11:55 PM, Gordon Shannon <gordo169@gmail.com> wrote:

What I'm trying to do doesn't seem like it should be that difficult or
unusual, but I can't seem to find the right combination of commands to make
it happen.  I want to have a log file that captures everything from an
interactive psql session.  Running 8.3.7 with bash shell on Linux.

Look up the screen command. It's pretty standard on most unixes.

#5A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Scott Marlowe (#4)
Re: How to capture an interactive psql session in a log file?

In response to Scott Marlowe :

On Thu, Apr 2, 2009 at 11:55 PM, Gordon Shannon <gordo169@gmail.com> wrote:

What I'm trying to do doesn't seem like it should be that difficult or
unusual, but I can't seem to find the right combination of commands to make
it happen. �I want to have a log file that captures everything from an
interactive psql session. �Running 8.3.7 with bash shell on Linux.

Look up the screen command. It's pretty standard on most unixes.

s/screen/script/

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net

#6Scott Marlowe
scott.marlowe@gmail.com
In reply to: A. Kretschmer (#5)
Re: How to capture an interactive psql session in a log file?

On Fri, Apr 3, 2009 at 1:20 AM, A. Kretschmer
<andreas.kretschmer@schollglas.com> wrote:

In response to Scott Marlowe :

On Thu, Apr 2, 2009 at 11:55 PM, Gordon Shannon <gordo169@gmail.com> wrote:

What I'm trying to do doesn't seem like it should be that difficult or
unusual, but I can't seem to find the right combination of commands to make
it happen.  I want to have a log file that captures everything from an
interactive psql session.  Running 8.3.7 with bash shell on Linux.

Look up the screen command.  It's pretty standard on most unixes.

s/screen/script/

Thanks. I was thinking script, honest. I need to get to sleep.

#7Mahlon E. Smith
mahlon@martini.nu
In reply to: Scott Marlowe (#6)
Re: How to capture an interactive psql session in a log file?

On Fri, Apr 03, 2009, Scott Marlowe wrote:

On Fri, Apr 3, 2009 at 1:20 AM, A. Kretschmer
<andreas.kretschmer@schollglas.com> wrote:

In response to Scott Marlowe :

On Thu, Apr 2, 2009 at 11:55 PM, Gordon Shannon <gordo169@gmail.com> wrote:

What I'm trying to do doesn't seem like it should be that difficult or
unusual, but I can't seem to find the right combination of commands to make
it happen.  I want to have a log file that captures everything from an
interactive psql session.  Running 8.3.7 with bash shell on Linux.

Look up the screen command.  It's pretty standard on most unixes.

s/screen/script/

Thanks. I was thinking script, honest. I need to get to sleep.

Though you can log with screen in the same fashion as script with
'C-a H'. :)

--
Mahlon E. Smith
http://www.martini.nu/contact.html

#8Erik Jones
ejones@engineyard.com
In reply to: Gordon Shannon (#3)
Re: How to capture an interactive psql session in a log file?

On Apr 2, 2009, at 11:07 PM, Gordon Shannon wrote:

That does the trick, awesome!

I do think it would be great if psql had a "stderr" capture in
addition to
stdout.

While the recommendations to use script are perfect for the use case
of capturing everything, including input, I think it's worth
mentioning that there was some discussion not too long ago to give
psql better IO redirection capabilities. The suggestion I like was
something along the lines of

pagila# \o > stdout.txt 2> stderr.txt

as the meaning of that should be immediately obvious to most *nix
users and would also allow

pagila# \o > allout.txt 2>&

and this would default to stdout for backwards compatibility (and
simplicity)

pagila# \o stdout.txt

Erik Jones, Database Administrator
Engine Yard
Support, Scalability, Reliability
866.518.9273 x 260
Location: US/Pacific
IRC: mage2k