Ticket #12010: SyslogFailureSource.cpp

File SyslogFailureSource.cpp, 1.8 KB (added by Philip Joseph <philip.joseph@…>, 7 years ago)
Line 
1#include <boost/asio.hpp>
2#include <boost/log/attributes/attribute.hpp>
3#include <boost/log/attributes/attribute_cast.hpp>
4#include <boost/log/common.hpp>
5#include <boost/log/sinks.hpp>
6#include <boost/log/sinks/syslog_backend.hpp>
7#include <boost/log/sources/basic_logger.hpp>
8#include <boost/log/sources/severity_channel_logger.hpp>
9
10
11
12
13int main(int argc, char *argv[]) {
14 namespace logging = boost::log;
15 namespace sinks = boost::log::sinks;
16 namespace src = boost::log::sources;
17 namespace expr = boost::log::expressions;
18 namespace attrs = boost::log::attributes;
19 namespace keywords = boost::log::keywords;
20 typedef sinks::synchronous_sink<sinks::syslog_backend> sink_t;
21 boost::shared_ptr<logging::core> core = logging::core::get();
22
23 // Create a new backend
24 boost::shared_ptr<sinks::syslog_backend> backend(new sinks::syslog_backend(
25 keywords::facility = sinks::syslog::local0,
26 keywords::use_impl = sinks::syslog::udp_socket_based));
27
28 // Setup the target address and port to send syslog messages to
29 backend->set_target_address("localhost");
30
31 // Create and fill in another level translator for "MyLevel" attribute of type
32 sinks::syslog::custom_severity_mapping<std::string> mapping("MyLevel");
33 mapping["debug"] = sinks::syslog::debug;
34 mapping["normal"] = sinks::syslog::info;
35 mapping["warning"] = sinks::syslog::warning;
36 mapping["failure"] = sinks::syslog::critical;
37 backend->set_severity_mapper(mapping);
38
39 // Wrap it into the frontend and register in the core.
40 core->add_sink(boost::make_shared<sink_t>(backend));
41 src::severity_logger_mt<> logger;
42
43 BOOST_LOG(logger) << "Initialized logger";
44 boost::asio::io_service ioService;
45 boost::asio::ip::udp::socket socket2(ioService);
46
47 return 0;
48}