Finished creating simple console/file logger
This commit is contained in:
+11
-3
@@ -17,9 +17,17 @@ class Logger {
|
||||
void fatal(std::string str);
|
||||
|
||||
private:
|
||||
static void formatter(boost::log::record_view const& rec, boost::log::formatting_ostream& strm);
|
||||
|
||||
typedef boost::log::sinks::asynchronous_sink<boost::log::sinks::text_ostream_backend> text_sink;
|
||||
static void log_formatter(boost::log::record_view const& rec, boost::log::formatting_ostream& strm);
|
||||
|
||||
// Define types for logging backends
|
||||
typedef boost::log::sinks::asynchronous_sink<boost::log::sinks::text_ostream_backend> console_backend;
|
||||
typedef boost::log::sinks::asynchronous_sink<boost::log::sinks::text_file_backend> file_backend;
|
||||
|
||||
// Define a sink for console output and for log file output
|
||||
boost::shared_ptr<console_backend> console_sink;
|
||||
boost::shared_ptr<file_backend> file_sink;
|
||||
|
||||
//Define a logger
|
||||
boost::log::sources::severity_logger< boost::log::trivial::severity_level > lg;
|
||||
boost::shared_ptr<text_sink> sink;
|
||||
};
|
||||
|
||||
@@ -11,6 +11,5 @@ int main(int argc, char** argv) {
|
||||
ArgumentParser argparse = ArgumentParser();
|
||||
argparse.parseargs(argc, argv);
|
||||
log.error("My pretty little error!");
|
||||
cout << "Hello world!" << endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
+25
-13
@@ -20,15 +20,21 @@ namespace src = boost::log::sources;
|
||||
namespace expr = boost::log::expressions;
|
||||
namespace keywords = boost::log::keywords;
|
||||
|
||||
BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", int)
|
||||
//BOOST_LOG_ATTRIBUTE_KEYWORD(severity, "Severity", int)
|
||||
|
||||
Logger::Logger() {
|
||||
|
||||
boost::log::register_simple_formatter_factory< boost::log::trivial::severity_level, char >("Severity");
|
||||
Logger::sink = boost::make_shared<text_sink>();
|
||||
Logger::console_sink = boost::make_shared<console_backend>();
|
||||
|
||||
Logger::sink->set_formatter
|
||||
(
|
||||
Logger::file_sink =
|
||||
boost::make_shared<file_backend>(
|
||||
keywords::file_name = "concatenator_log_%N.log",
|
||||
keywords::rotation_size = 5 * 1024 * 1024
|
||||
);
|
||||
|
||||
|
||||
Logger::file_sink->set_formatter(
|
||||
expr::stream <<
|
||||
"[" <<
|
||||
expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S") <<
|
||||
@@ -38,14 +44,26 @@ Logger::Logger() {
|
||||
expr::smessage
|
||||
);
|
||||
|
||||
Logger::console_sink->set_formatter(
|
||||
expr::stream <<
|
||||
"[" <<
|
||||
expr::format_date_time< boost::posix_time::ptime >("TimeStamp", "%Y-%m-%d %H:%M:%S") <<
|
||||
"] [" <<
|
||||
logging::trivial::severity <<
|
||||
"] --- " <<
|
||||
expr::smessage
|
||||
);
|
||||
|
||||
boost::shared_ptr<std::ostream> stdout_stream{&std::clog, boost::null_deleter{}};
|
||||
Logger::sink->locked_backend()->add_stream(stdout_stream);
|
||||
Logger::sink->locked_backend()->add_stream(boost::make_shared< std::ofstream >("sample.log"));
|
||||
Logger::console_sink->locked_backend()->add_stream(stdout_stream);
|
||||
|
||||
Logger::console_sink->locked_backend()->auto_flush(true);
|
||||
Logger::file_sink->locked_backend()->auto_flush(true);
|
||||
|
||||
//Logger::sink->set_filter(severity > 0);
|
||||
|
||||
logging::core::get()->add_sink(Logger::sink);
|
||||
logging::core::get()->add_sink(Logger::file_sink);
|
||||
logging::core::get()->add_sink(Logger::console_sink);
|
||||
|
||||
logging::add_common_attributes();
|
||||
|
||||
@@ -53,30 +71,24 @@ Logger::Logger() {
|
||||
|
||||
void Logger::trace(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::trace) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
void Logger::debug(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::debug) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
void Logger::info(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::info) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
void Logger::warning(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::warning) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
void Logger::error(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::error) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
void Logger::fatal(std::string str) {
|
||||
BOOST_LOG_SEV(lg, logging::trivial::fatal) << str;
|
||||
Logger::sink->flush();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user