Commit b1750843 authored by louiz’'s avatar louiz’

Log the warn/error messages coming from libpq in a correct format

parent d3e07eee
......@@ -11,6 +11,8 @@
#include <logger/logger.hpp>
#include <cstring>
PostgresqlEngine::PostgresqlEngine(PGconn*const conn):
conn(conn)
{}
......@@ -20,6 +22,15 @@ PostgresqlEngine::~PostgresqlEngine()
PQfinish(this->conn);
}
static void logging_notice_processor(void*, const char* original)
{
if (original && std::strlen(original) > 0)
{
std::string message{original, std::strlen(original) - 1};
log_warning("PostgreSQL: ", message);
}
}
std::unique_ptr<DatabaseEngine> PostgresqlEngine::open(const std::string& conninfo)
{
PGconn* con = PQconnectdb(conninfo.data());
......@@ -37,6 +48,7 @@ std::unique_ptr<DatabaseEngine> PostgresqlEngine::open(const std::string& connin
PQfinish(con);
throw std::runtime_error("failed to open connection.");
}
PQsetNoticeProcessor(con, &logging_notice_processor, nullptr);
return std::make_unique<PostgresqlEngine>(con);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment