Re: print in plpython not appearing in logs - Mailing list pgsql-general

From Ludwig Isaac Lim
Subject Re: print in plpython not appearing in logs
Date
Msg-id 893661785.901171.1670208140915@mail.yahoo.com
Whole thread Raw
In response to Re: print in plpython not appearing in logs  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-general


Hi Tom:


>> I'm having problems wherein my print() statements inside my plpython stored proc are not appearing in postgresql
log.I tried setting the file=sys.stderr 


> Hmm.  I can tell you that with "logging_collector = on", I would only expect the logs to capture stderr output, not
stdout. So it makes 
> sense to me that plain "print" would disappear into the bit bucket. But if you specify stderr output, it ought to
work. I don't know 
> enough Python to know why it's not working, but it seems to me this is primarily a Python question not a Postgres
question. Maybe you need 
> an explicit fflush-equivalent step?  Dunno.

>            regards, tom lane

As usual, thank you for pointing out where problem lies.

I made it work by adding flush=True flag to the print() statement.

print("oink oink", file=sys.stderr, flush=True)

I was under the wrong impression that output to stderr are automatically flushed.

Thank you once again.

Regards,
Ludwig



pgsql-general by date:

Previous
From: Michael Paquier
Date:
Subject: Re: Libpq linked to LibreSSL
Next
From: shashidhar Reddy
Date:
Subject: Re: plpgsql_check_function issue after upgrade