Печать из файла c ++, запущенного на postgresql

0

Я запускаю некоторый код C++ в postgresql. Я пытаюсь напечатать некоторый результат, чтобы отслеживать выполнение, но результата нет. Есть ли что-нибудь, что мне нужно добавить, чтобы включить команду printf? Я добавляю указанные ниже файлы в свой код:

#include "postgres.h"

#include <math.h>
#include <limits.h>
#include <inttypes.h>

Что я пытаюсь напечатать:

printf("abc");

Любая помощь будет принята с благодарностью, поскольку я пытался получить некоторые результаты за последние 2 дня. Благодарю!

Изменить: я запускаю сервер postgresql с помощью SSH. Дайте мне знать через комментарии, если вам нужна дополнительная информация.

  • 0
    Printf работает и для C ++.
  • 0
    Попробуйте printf("abc\n");
Показать ещё 4 комментария
Теги:

2 ответа

1

Вам необходимо использовать систему регистрации в PostgreSQL: http://www.postgresql.org/docs/current/static/error-message-reporting.html.

Из справки:

elog(INFO, "count=%d", count);

Уровень журнала должен соответствовать уровню, который вы настроили PostgreSQL для записи в файл журнала.

  • 0
    elog отлично подходит для отладки и т. д. Для производственного кода качества, предназначенного для выдачи качественных сообщений об ошибках, часто предпочтительнее использовать ereport .
0

printf("abc"); попытается написать в stdout, но обычно Postgresql-сервер работает как демон, а это означает, что он закроет stdout, поэтому вы не можете видеть эту строку на стандартном выходе.

Вы должны использовать средства отчета об ошибках, предлагаемые Postgresql, для вывода этих сообщений в файл журнала Postgresql, как указано в @rygvis.

  • 1
    В зависимости от запуска сервера stderr (в отличие от stdout) часто попадает в файл журнала сервера. Но гораздо, намного, намного лучше использовать elog и ereport .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню