diff options
author | louiz’ <louiz@louiz.org> | 2018-02-16 00:57:49 +0100 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2018-02-16 00:57:49 +0100 |
commit | b1750843008b7928c72699c592776fb56c66ec26 (patch) | |
tree | 156b18816edc082c7e5b47edad260019d66d0a66 | |
parent | d3e07eee1335822643d7086b95590b60a4e002c3 (diff) | |
download | biboumi-b1750843008b7928c72699c592776fb56c66ec26.tar.gz biboumi-b1750843008b7928c72699c592776fb56c66ec26.tar.bz2 biboumi-b1750843008b7928c72699c592776fb56c66ec26.tar.xz biboumi-b1750843008b7928c72699c592776fb56c66ec26.zip |
Log the warn/error messages coming from libpq in a correct format
-rw-r--r-- | src/database/postgresql_engine.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/database/postgresql_engine.cpp b/src/database/postgresql_engine.cpp index 518c23a..59bc885 100644 --- a/src/database/postgresql_engine.cpp +++ b/src/database/postgresql_engine.cpp @@ -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); } |