print in plpython not appearing in logs
| От | Ludwig Isaac Lim | 
|---|---|
| Тема | print in plpython not appearing in logs | 
| Дата | |
| Msg-id | 1649936435.214554.1669982358413@mail.yahoo.com обсуждение исходный текст | 
| Ответы | Re: print in plpython not appearing in logs Re: print in plpython not appearing in logs | 
| Список | pgsql-general | 
I'm having problems wherein my print() statements inside my plpython stored proc are not appearing in postgresql log. I
triedsetting 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
surewhat I'm doing wrong. 
Thank you in advance,
Ludwig
		
	В списке pgsql-general по дате отправления: