What is brilliant about plpython? Any brilliant examples to look at? On Friday, 2 December 2022, Ludwig Isaac Lim <ludz_...@yahoo.com> wrote:
> 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 > > To reproduce: > > CREATE OR REPLACE PROCEDURE p_ludwig_test() > AS > $$ > import sys > try: > x = 1 / 0 > except: > plpy.log("hello") > print("oink oink", file=sys.stderr) > print("oink oink - v2") > plpy.log("haha") > $$ > LANGUAGE plpython3u; > > call p_ludwig_test() > > > > Output: > --------------------- > 2022-12-02 11:46:11.324 UTC [19390] LOG: hello > 2022-12-02 11:46:11.324 UTC [19390] CONTEXT: PL/Python procedure > "p_ludwig_test" > 2022-12-02 11:46:11.324 UTC [19390] STATEMENT: call p_ludwig_test(); > 2022-12-02 11:46:11.324 UTC [19390] LOG: haha > 2022-12-02 11:46:11.324 UTC [19390] CONTEXT: PL/Python procedure > "p_ludwig_test" > 2022-12-02 11:46:11.324 UTC [19390] STATEMENT: call p_ludwig_test(); > > > Notice that the "oink oink" is not there. > > > Relevant logging configuration: > logging_collector = on > log_directory = 'logs' > log_min_messages = info > log_min_error_statement = error > > PG version > ------------------- > PostgreSQL 14.6 on aarch64-unknown-linux-gnu, compiled by gcc (GCC) 7.3.1 > 20180712 (Red Hat 7.3.1-15), 64-bit > > > > The reason why I'm trying to use print() is because plpy logger is quite > verbose. Each logging will output 3 line > > for example: > plpy.log("hello") > > Will generate the following 3 lines in the log: > 2022-12-02 11:46:11.324 UTC [19390] LOG: hello > 2022-12-02 11:46:11.324 UTC [19390] CONTEXT: PL/Python procedure > "p_ludwig_test" > 2022-12-02 11:46:11.324 UTC [19390] STATEMENT: call p_ludwig_test(); > > Another thing is there is another stored procedure that I have wherein the > print() to stderr actually works, so I'm not sure what I'm doing wrong. > > > Thank you in advance, > Ludwig > > >