20#ifndef ORES_TELEMETRY_DATABASE_LOG_DATABASE_SINK_HPP
21#define ORES_TELEMETRY_DATABASE_LOG_DATABASE_SINK_HPP
26#include <boost/log/sinks/basic_sink_backend.hpp>
27#include <boost/log/sinks/frontend_requirements.hpp>
28#include <boost/uuid/uuid.hpp>
29#include "ores.telemetry/domain/resource.hpp"
30#include "ores.telemetry/domain/telemetry_log_entry.hpp"
70 public boost::log::sinks::basic_sink_backend<
71 boost::log::sinks::synchronized_feeding> {
83 std::shared_ptr<domain::resource> resource,
85 const std::string& source_type =
"test",
86 const std::string& source_name =
"unit-test");
97 void consume(
const boost::log::record_view& rec);
118 std::shared_ptr<domain::resource> resource_;
120 std::string source_type_;
121 std::string source_name_;
122 boost::uuids::uuid session_id_;
123 boost::uuids::uuid account_id_;
124 bool has_session_id_ =
false;
125 bool has_account_id_ =
false;
Implements logging for ORE Studio.
Definition database_sink_backend.hpp:32
std::function< void(const domain::telemetry_log_entry &)> database_log_handler
Handler function type for processing log entries destined for database storage.
Definition database_sink_backend.hpp:41
A persisted telemetry log entry.
Definition telemetry_log_entry.hpp:41
Boost.Log sink backend that prepares logs for database storage.
Definition database_sink_backend.hpp:71
void consume(const boost::log::record_view &rec)
Processes a Boost.Log record and converts it for database storage.
Definition database_sink_backend.cpp:82
void set_session_id(const boost::uuids::uuid &session_id)
Sets the session ID for logs produced by this sink.
Definition database_sink_backend.cpp:171
void set_account_id(const boost::uuids::uuid &account_id)
Sets the account ID for logs produced by this sink.
Definition database_sink_backend.cpp:176