diff --git a/src/main.cpp b/src/main.cpp index 9f469fd..418283c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -24,6 +24,15 @@ #include // strlen #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include "multiplatform.h" #include "udpTracker.hpp" @@ -111,7 +120,7 @@ int main(int argc, char *argv[]) ("apiserver.threads", boost::program_options::value()->default_value(1), "threads for API server") ("apiserver.port", boost::program_options::value()->default_value(6969), "TCP port to listen on") - ("logging.filename", boost::program_options::value()->default_value("stdout"), "file to write logs to") + ("logging.filename", boost::program_options::value()->default_value("/var/log/udpt.log"), "file to write logs to") ("logging.level", boost::program_options::value()->default_value("warning"), "log level (error/warning/info/debug)") #ifdef linux @@ -169,6 +178,22 @@ int main(int argc, char *argv[]) } // setup logging... + boost::log::add_common_attributes(); + boost::shared_ptr logBackend = boost::make_shared( + boost::log::keywords::file_name = var_map["logging.filename"].as(), + boost::log::keywords::auto_flush = true, + boost::log::keywords::open_mode = std::ios::out | std::ios::app + ); + typedef boost::log::sinks::asynchronous_sink udptSink_t; + boost::shared_ptr async_sink (new udptSink_t(logBackend)); + async_sink->set_formatter( + boost::log::expressions::stream + << boost::log::expressions::format_date_time("TimeStamp", "%Y-%m-%d %H:%M:%S") << " " + << boost::log::expressions::attr("Severity") + << " [" << boost::log::expressions::attr("Channel") << "] \t" + << boost::log::expressions::smessage + ); + boost::log::core::get()->add_sink(async_sink); boost::log::sources::severity_channel_logger_mt<> logger(boost::log::keywords::channel = "main");