7 #ifndef TECGRAF_SDK_OPENBUS_LOG_H_
8 #define TECGRAF_SDK_OPENBUS_LOG_H_
10 #include "openbus/decl.hpp"
12 #include <log/output/streambuf_output.h>
13 #include <log/logger.h>
14 #ifdef OPENBUS_SDK_MULTITHREAD
15 #include <boost/thread.hpp>
22 #ifndef OPENBUS_DOXYGEN
23 typedef logger::log_scope log_scope;
24 typedef logger::scope_token scope_token;
26 using logger::error_level;
27 using logger::warning_level;
28 using logger::info_level;
29 using logger::debug_level;
30 #ifndef OPENBUS_DOXYGEN
31 #ifdef OPENBUS_SDK_MULTITHREAD
35 struct mico_thread_formatter : logger::formatter_base
37 void format(logger::logger
const &, logger::level, scope_token
const&,
38 std::string &
string)
const
41 boost::thread::id tid = boost::this_thread::get_id();
42 std::memcpy(&
id, &tid, (std::min)(
sizeof(
id),
sizeof(tid)));
44 s <<
"(thread " << std::hex <<
id <<
") ";
45 std::string tmp = s.str();
46 string.insert(
string.begin(), tmp.begin(), tmp.end());
48 mico_thread_formatter *clone()
const
50 return new mico_thread_formatter(*
this);
63 #ifndef OPENBUS_DOXYGEN
67 add_output(logger::output::make_streambuf_output(std::cout));
68 #ifdef OPENBUS_SDK_MULTITHREAD
69 std::auto_ptr<logger::formatter_base> mico_thread_formatter
70 (
new detail::mico_thread_formatter);
80 void add_output(std::auto_ptr<logger::output_base> output)
82 std::auto_ptr<logger::output_base> tmp1(output->clone());
83 std::auto_ptr<logger::output_base> tmp2(output->clone());
84 general_log.add_output(output);
85 ci_log.add_output(tmp1);
86 si_log.add_output(tmp2);
95 std::auto_ptr<logger::formatter_base> tmp1(formatter->clone());
96 std::auto_ptr<logger::formatter_base> tmp2(formatter->clone());
97 general_log.add_formatter(formatter);
98 ci_log.add_formatter(tmp1);
99 si_log.add_formatter(tmp2);
107 general_log.set_level(lev);
108 ci_log.set_level(lev);
109 si_log.set_level(lev);
112 #ifndef OPENBUS_DOXYGEN
113 logger::logger &general_logger()
118 logger::logger &client_interceptor_logger()
123 logger::logger &server_interceptor_logger()
129 logger::logger general_log, ci_log, si_log;
136 OPENBUS_SDK_DECL log_type&
log();
openbus
Definition: Connection.hpp:41
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:80
Classe que contém funções auxiliares para configuração de log do Openbus.
Definition: log.hpp:61
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:93
void set_level(logger::level lev)
Modifica o nível de log para o Openbus.
Definition: log.hpp:105
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...