Я запускаю некоторый код C++ в postgresql. Я пытаюсь напечатать некоторый результат, чтобы отслеживать выполнение, но результата нет. Есть ли что-нибудь, что мне нужно добавить, чтобы включить команду printf
? Я добавляю указанные ниже файлы в свой код:
#include "postgres.h"
#include <math.h>
#include <limits.h>
#include <inttypes.h>
Что я пытаюсь напечатать:
printf("abc");
Любая помощь будет принята с благодарностью, поскольку я пытался получить некоторые результаты за последние 2 дня. Благодарю!
Изменить: я запускаю сервер postgresql с помощью SSH. Дайте мне знать через комментарии, если вам нужна дополнительная информация.
Вам необходимо использовать систему регистрации в PostgreSQL: http://www.postgresql.org/docs/current/static/error-message-reporting.html.
Из справки:
elog(INFO, "count=%d", count);
Уровень журнала должен соответствовать уровню, который вы настроили PostgreSQL для записи в файл журнала.
elog
отлично подходит для отладки и т. д. Для производственного кода качества, предназначенного для выдачи качественных сообщений об ошибках, часто предпочтительнее использовать ereport
.
printf("abc");
попытается написать в stdout
, но обычно Postgresql-сервер работает как демон, а это означает, что он закроет stdout
, поэтому вы не можете видеть эту строку на стандартном выходе.
Вы должны использовать средства отчета об ошибках, предлагаемые Postgresql, для вывода этих сообщений в файл журнала Postgresql, как указано в @rygvis.
elog
и ereport
.
printf("abc\n");