plpgsql:raise notice输出只显示在pgAdmin中

时间:2015-06-16 20:48:02

标签: postgresql plpgsql

postgresql 9.4。我有一个功能

CREATE OR REPLACE FUNCTION test(source_ text)
  RETURNS text AS
$BODY$
  DECLARE
  BEGIN
   raise debug '%s', source_;
   return source_ || ' processed';
  END
  $BODY$
  LANGUAGE plpgsql STABLE
  COST 100;
ALTER FUNCTION test()
  OWNER TO test;

select * from test('input');

我只能从pgAmin看到通知,但是没有来自ide或toad(以及其他一些)db客户端的通知。 如何打开"输出通知"的输出?或者可能有其他方法来获取调试信息?

更新

我找到了一个解决方法:tail -F用于日志文件并在postgresql.conf中设置log_min_messages

1 个答案:

答案 0 :(得分:3)

您需要调整client_min_messages,例如:

set client_min_messages = 'debug';

有关详情,请参阅http://www.postgresql.org/docs/9.1/static/runtime-config-logging.html#GUC-CLIENT-MIN-MESSAGES

test=# create or replace function test() returns int as $$
begin
  raise debug 'foo';
  return 1;
end
$$ language plpgsql immutable;
CREATE FUNCTION
test=# select test();
 test 
------
    1
(1 row)

test=# set client_min_messages = 'debug';
SET
test=# select test();
DEBUG:  foo
 test 
------
    1
(1 row)

test=#