16 Ekim 2016 Pazar

log sinks asynchronous_sink Sınıfı

Giriş
Kolay kullanım için şu satırı dahil ederiz.
namespace sinks = boost::log::sinks;
Sink hazırlandıktan sonra core'a eklenir. Şöyle yaparız.
// "register" our sink
logging::core::get()->add_sink (pSink);
Constructor - text_ostrem_backend
Şu satırı dahil ederiz.
#include <boost/log/sinks/text_ostream_backend.hpp>
Şöyle yaparız.
typedef sinks::asynchronous_sink<sinks::text_ostream_backend> TextSink;
boost::shared_ptr<TextSink> pSink = boost::make_shared<TextSink>();
Constructor - text_file_backend
Şöyle yaparız.
typedef sinks::asynchronous_sink<sinks::text_file_backend> TextSink; 

boost::shared_ptr<sinks::text_file_backend> pBackend = ...;

boost::shared_ptr<TextSink> pSink = boost::make_shared<TextSink>(pBackend);
locked_backend metodu
Şöyle yaparız
// add "console" output stream to our sink
boost::shared_ptr<std::ostream> pStream {&std::clog, boost::null_deleter{}};
pSink->locked_backend()->add_stream (pStream);
set_filter metodu
Şöyle yaparız.
bool onlyWarnings(const boost::log::attribute_value_set& set)
{
    return set["Severity"].extract<severity_level>() > 0;
}

// just log messages with severity >= SEVERITY_THRESHOLD are written
pSink->set_filter (&onlyWarnings);
set_formatter metodu
Şöyle yaparız.
void severity_and_message(const boost::log::record_view &view,
  boost::log::formatting_ostream &os)
{
  os << view.attribute_values()["Severity"].extract<severity_level>() 
     << ":"
     <<  view.attribute_values()["Message"].extract<std::string>();
}

// specify the format of the log message
pSink->set_formatter (&severity_and_message);


Hiç yorum yok:

Yorum Gönder