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


Reply via email to