Skip to content
Snippets Groups Projects
Verified Commit 4a738a7a authored by Timm Fitschen's avatar Timm Fitschen
Browse files

EHN: logging and error handling

parent 01931999
No related branches found
No related tags found
1 merge request!3Better Error Handling and Logging
Pipeline #10937 passed
Pipeline: caosdb-cppinttest

#10939

    This commit is part of merge request !3. Comments created here will be created in the context of that merge request.
    ......@@ -30,6 +30,9 @@
    #define CAOSDB_LOG_LEVEL_DEBUG 300
    #define CAOSDB_LOG_LEVEL_TRACE 200
    #define CAOSDB_LOG_LEVEL_ALL 0
    #define CAOSDB_DEFAULT_LOG_LEVEL 500
    #ifndef CAOSDB_DEFAULT_LOG_LEVEL
    #define CAOSDB_DEFAULT_LOG_LEVEL CAOSDB_LOG_LEVEL_ERROR
    #endif
    #endif
    ......@@ -120,6 +120,12 @@ SyslogSinkConfiguration::SyslogSinkConfiguration(const std::string &name,
    }
    auto initialize_logging_defaults() -> int {
    // first: turn everything off
    boost::log::settings off_settings;
    off_settings["Core.DisableLogging"] = true;
    boost::log::init_from_settings(off_settings);
    // now set everything up
    const static std::vector<std::shared_ptr<SinkConfiguration>> default_sinks = {
    std::make_shared<ConsoleSinkConfiguration>("DEFAULT_SINK_1",
    CAOSDB_DEFAULT_LOG_LEVEL)};
    ......
    ......@@ -12,7 +12,7 @@
    extern "C" {
    #define CCAOSDB_LOGGER_NAME "ccaosd"
    #define CCAOSDB_LOGGER_NAME "ccaosdb"
    /*
    * Macro for wrapping every function into a try-catch clause. If an exception
    ......
    ......@@ -3,23 +3,31 @@
    #include <stdio.h> // for printf
    int main(void) {
    int status = 0; // last function return value
    printf(
    "CaosDB C client (libcaosdb %d.%d.%d)\nWe don't miss the H of caos.\n\n",
    LIBCAOSDB_VERSION_MAJOR, LIBCAOSDB_VERSION_MINOR, LIBCAOSDB_VERSION_PATCH);
    caosdb_connection_connection connection;
    caosdb_connection_connection_manager_get_default_connection(&connection);
    status =
    caosdb_connection_connection_manager_get_default_connection(&connection);
    if (status != 0) {
    printf("An error occured: ERROR %d - %s\n", status,
    caosdb_get_status_description(status));
    return status;
    }
    caosdb_info_version_info version_info;
    int status = caosdb_connection_get_version_info(&version_info, &connection);
    if (status == 0) {
    printf("Server version: %d.%d.%d-%s-%s\n", version_info.major,
    version_info.minor, version_info.patch, version_info.pre_release,
    version_info.build);
    /*} else {*/
    /*printf("An error occured: ERROR %d - %s\n", status,*/
    /*caosdb_get_status_description(status));*/
    status = caosdb_connection_get_version_info(&version_info, &connection);
    if (status != 0) {
    printf("An error occured: ERROR %d - %s\n", status,
    caosdb_get_status_description(status));
    return status;
    }
    printf("Server version: %d.%d.%d-%s-%s\n", version_info.major,
    version_info.minor, version_info.patch, version_info.pre_release,
    version_info.build);
    return 0;
    }
    ......@@ -24,6 +24,7 @@
    #include "caosdb/connection.h" // for Connection, ConnectionManager
    #include "caosdb/constants.h" // for LIBCAOSDB_VERSION_MINOR, LIBCAOSDB_V...
    #include "caosdb/entity.h" // for Entity
    #include "caosdb/exceptions.h" // for ConfigurationError
    #include "caosdb/info.h" // for VersionInfo
    #include "caosdb/transaction.h" // for Transaction, UniqueResult, ResultSet
    #include <iostream> // for operator<<, basic_ostream, basic_ost...
    ......@@ -39,28 +40,33 @@ auto main() -> int {
    << "We don't miss the H of caos.\n"
    << std::endl;
    const auto &connection =
    caosdb::connection::ConnectionManager::GetDefaultConnection();
    try {
    const auto &connection =
    caosdb::connection::ConnectionManager::GetDefaultConnection();
    connection->RetrieveVersionInfoNoExceptions();
    // get version info of the server
    const auto &v_info = connection->GetVersionInfo();
    std::cout << "Server Version: " << v_info->GetMajor() << "."
    << v_info->GetMinor() << "." << v_info->GetPatch() << "-"
    << v_info->GetPreRelease() << "-" << v_info->GetBuild()
    << std::endl;
    connection->RetrieveVersionInfoNoExceptions();
    // get version info of the server
    const auto &v_info = connection->GetVersionInfo();
    std::cout << "Server Version: " << v_info->GetMajor() << "."
    << v_info->GetMinor() << "." << v_info->GetPatch() << "-"
    << v_info->GetPreRelease() << "-" << v_info->GetBuild()
    << std::endl;
    // retrieve an entity
    auto transaction(connection->CreateTransaction());
    transaction->RetrieveById("20");
    transaction->Execute();
    const auto &result_set =
    dynamic_cast<const caosdb::transaction::UniqueResult &>(
    transaction->GetResultSet());
    // retrieve an entity
    auto transaction(connection->CreateTransaction());
    transaction->RetrieveById("20");
    transaction->Execute();
    const auto &result_set =
    dynamic_cast<const caosdb::transaction::UniqueResult &>(
    transaction->GetResultSet());
    // print description
    std::cout << "Entity Description: " << result_set.GetEntity().GetDescription()
    << std::endl;
    // print description
    std::cout << "Entity Description: "
    << result_set.GetEntity().GetDescription() << std::endl;
    return 0;
    return 0;
    } catch (const caosdb::exceptions::ConfigurationError &exc) {
    std::cout << "ConfigurationError: " << exc.what() << std::endl;
    return exc.GetCode();
    }
    }
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment