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  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: print in plpython not appearing in logs  (Shaozhong SHI <shishaozhong@gmail.com>)
Список 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 по дате отправления:

Предыдущее
От: Amitabh Kant
Дата:
Сообщение: Re: Finding free time period on non-continous tstzrange field values
Следующее
От: "jacktby@gmail.com"
Дата:
Сообщение: modify planner codes, get failed