7 #ifndef TECGRAF_SDK_OPENBUS_OPENBUS_LOG_HPP
8 #define TECGRAF_SDK_OPENBUS_OPENBUS_LOG_HPP
10 #include "openbus/detail/decl.hpp"
13 #include <log/output/streambuf_output.h>
14 #include <log/logger.h>
15 #include <boost/thread.hpp>
20 #ifndef OPENBUS_DOXYGEN
21 typedef logger::log_scope log_scope;
22 typedef logger::scope_token scope_token;
24 using logger::error_level;
25 using logger::warning_level;
26 using logger::info_level;
27 using logger::debug_level;
29 #ifndef OPENBUS_DOXYGEN
33 struct mico_thread_formatter : logger::formatter_base
35 void format(logger::logger
const &, logger::level, scope_token
const&,
36 std::string &
string)
const
39 boost::thread::id tid = boost::this_thread::get_id();
40 std::memcpy(&
id, &tid, (std::min)(
sizeof(
id),
sizeof(tid)));
42 s <<
"(thread " << std::hex <<
id <<
") ";
43 std::string tmp = s.str();
44 string.insert(
string.begin(), tmp.begin(), tmp.end());
46 mico_thread_formatter *clone()
const
48 return new mico_thread_formatter(*
this);
60 #ifndef OPENBUS_DOXYGEN
64 add_output(logger::output::make_streambuf_output(std::cout));
65 std::auto_ptr<logger::formatter_base> mico_thread_formatter
66 (
new detail::mico_thread_formatter);
75 void add_output(std::auto_ptr<logger::output_base> output)
77 std::auto_ptr<logger::output_base> tmp1(output->clone());
78 std::auto_ptr<logger::output_base> tmp2(output->clone());
79 general_log.add_output(output);
80 ci_log.add_output(tmp1);
81 si_log.add_output(tmp2);
90 std::auto_ptr<logger::formatter_base> tmp1(formatter->clone());
91 std::auto_ptr<logger::formatter_base> tmp2(formatter->clone());
92 general_log.add_formatter(formatter);
93 ci_log.add_formatter(tmp1);
94 si_log.add_formatter(tmp2);
102 general_log.set_level(lev);
103 ci_log.set_level(lev);
104 si_log.set_level(lev);
107 #ifndef OPENBUS_DOXYGEN
108 logger::logger &general_logger()
113 logger::logger &client_interceptor_logger()
118 logger::logger &server_interceptor_logger()
124 logger::logger general_log, ci_log, si_log;
131 OPENBUS_SDK_DECL log_type&
log();
openbus
Definition: Connection.hpp:37
void add_output(std::auto_ptr< logger::output_base > output)
Adiciona um output de log. Esses outputs podem ser construidos com as bibliotecas de log...
Definition: log.hpp:75
Classe que contém funções auxiliares para configuração de log do Openbus.
Definition: log.hpp:58
void add_formatter(std::auto_ptr< logger::formatter_base > formatter)
Adiciona um formatador de log. Esses formatadores podem ser construidos com as bibliotecas de log...
Definition: log.hpp:88
void set_level(logger::level lev)
Modifica o nível de log para o Openbus.
Definition: log.hpp:100
OPENBUS_SDK_DECL log_type & log()
Instância global de log_type que permite acesso pelo usuário das configurações de log do Openbus...