コード例 #1
0
ファイル: MHLog.cpp プロジェクト: wuliangyue7/MHProject
NS_BEGIN_MH

void MHLog::init()
{
	_logCore = logging::core::get();

	typedef sinks::synchronous_sink<sinks::text_ostream_backend> TextSink;

	BSPtr<TextSink> sink = boost::make_shared<TextSink>();
	sink->locked_backend()->add_stream(boost::make_shared<std::ofstream>("log/sign.log"));
	sink->set_formatter(
		expr::format("[%1%]<%2%>(%3%):%4%")
		% expr::format_date_time<boost::posix_time::ptime>("TimeStamp", "%Y-%M-%d %H:%M:%S") 
		% logging::trivial::severity
		% expr::attr<boost::log::attributes::current_thread_id::value_type>("ThreadID")
		% expr::smessage
		);

	BSPtr<std::ostream> consoleStream(&std::clog, boost::null_deleter());
	sink->locked_backend()->add_stream(consoleStream);

	_logCore->add_sink(sink);

	logging::add_common_attributes();
	BOOST_LOG_SCOPED_THREAD_TAG("ThreadID", boost::this_thread::get_id());
	
}
コード例 #2
0
ファイル: DefaultLogger.cpp プロジェクト: Acarus/kaa
DefaultLogger::DefaultLogger(const std::string& clientId, const std::string& logFileName): clientId_(clientId), pSink_(new text_sink)
{
    text_sink::locked_backend_ptr pBackend = pSink_->locked_backend();
    boost::shared_ptr< std::ostream > consoleStream(&std::clog, [](const void *)->void const {});
    pBackend->add_stream(consoleStream);
    if (!logFileName.empty()) {
        boost::shared_ptr< std::ofstream > fileStream(new std::ofstream(logFileName.c_str()));
        pBackend->add_stream(fileStream);
    }

    pSink_->set_formatter(boost::log::expressions::stream << '[' << boost::log::expressions::attr< std::string > ("id")
                          << ']' << '[' << boost::log::expressions::attr< boost::posix_time::ptime >("TimeStamp") << ']'
                          << '[' <<  boost::log::expressions::attr< boost::log::attributes::current_thread_id::value_type >("ThreadID")
                          << ']' << '[' << boost::log::expressions::attr< boost::log::trivial::severity_level >("Severity") << ']' <<  boost::log::expressions::smessage);

    pSink_->set_filter(boost::log::expressions::begins_with(boost::log::expressions::attr< std::string >("id"), clientId_.c_str()));
    pBackend->auto_flush(true);
    boost::log::core::get()->add_global_attribute("TimeStamp", boost::log::attributes::local_clock());
    boost::log::core::get()->add_global_attribute("ThreadID", boost::log::attributes::current_thread_id());
    boost::log::core::get()->add_sink(pSink_);

}