X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FLogger%2FSyslogUDPTarget.cc;h=77fbcad47dd35f499fa3e09137404375e70673bc;hb=394ced7000128fef7e753caea1deda8d55dec8e2;hp=d1e70a3c31f19a0c9026401b2ab9bc3a8fb23bb4;hpb=26610f603ebdd465307b9621f532c1fe19fd5571;p=senf.git diff --git a/senf/Utils/Logger/SyslogUDPTarget.cc b/senf/Utils/Logger/SyslogUDPTarget.cc index d1e70a3..77fbcad 100644 --- a/senf/Utils/Logger/SyslogUDPTarget.cc +++ b/senf/Utils/Logger/SyslogUDPTarget.cc @@ -1,6 +1,6 @@ // $Id$ // -// Copyright (C) 2008 +// Copyright (C) 2008 // Fraunhofer Institute for Open Communication Systems (FOKUS) // Competence Center NETwork research (NET), St. Augustin, GERMANY // Stefan Bund @@ -30,29 +30,32 @@ #include #include #include -#include +#include +#include +#include //#include "SyslogUDPTarget.mpp" #define prefix_ -///////////////////////////////cc.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// prefix_ void senf::log::SyslogUDPTarget::init() { - namespace kw = senf::console::kw; + namespace kw = console::kw; + namespace fty = console::factory; consoleDir().remove("format"); - consoleDir().add("format", senf::membind(&SyslogUDPTarget::consoleFormat, this)) - .doc("Show the current log message format."); - consoleDir().add("syslog", senf::membind( - static_cast(&SyslogUDPTarget::syslog), - this)) - .arg("flag","new syslog format state", - kw::default_value=true) - .doc("Change the syslog format flag. By default, syslog formating is enabled. In this\n" - "state, the udp target will send out minimal but valid syslog format messages.\n" - "\n" - "Disabling syslog format will remove the syslog prefix. Log messages will then be\n" - "sent using plain UDP."); + consoleDir() + .add("format", fty::Command(&SyslogUDPTarget::consoleFormat, this) + .doc("Show the current log message format.") ); + consoleDir() + .add("syslog", fty::Command(SENF_MEMBINDFNP(void, SyslogUDPTarget, syslog, (bool))) + .arg("flag","new syslog format state", + kw::default_value=true) + .doc("Change the syslog format flag. By default, syslog formating is enabled. In this\n" + "state, the udp target will send out minimal but valid syslog format messages.\n" + "\n" + "Disabling syslog format will remove the syslog prefix. Log messages will then be\n" + "sent using plain UDP.") ); } prefix_ void senf::log::SyslogUDPTarget::v_write(time_type timestamp, std::string const & stream, @@ -68,7 +71,7 @@ prefix_ void senf::log::SyslogUDPTarget::v_write(time_type timestamp, std::strin // or message will not inadvertently be interpreted as date or hostname by a receiving syslog // daemon or proxy if (syslogFormat_) - prfstream << '<' << (facility_ | senf::log::SyslogTarget::LEVELMAP[level]) << "> "; + prfstream << '<' << (facility_ | SyslogTarget::LEVELMAP[level]) << "> "; prfstream << prefix(timestamp, stream, area, level); std::string const & prf (prfstream.str()); @@ -81,7 +84,7 @@ prefix_ void senf::log::SyslogUDPTarget::v_write(time_type timestamp, std::strin std::string line; unsigned sz (896-prf.size()); - for (; i != i_end; ++i) + for (; i != i_end; ++i) for (unsigned j (0); j < i->size(); j += sz) { line = prf; line += std::string(*i, j, sz); @@ -107,54 +110,56 @@ namespace log { prefix_ senf::log::SyslogUDPTarget::RegisterConsole::RegisterConsole() { - namespace kw = senf::console::kw; - - detail::TargetRegistry::instance().consoleDir().add( - "udp-target", - static_cast( - &RegisterConsole::create)) - .arg("address", "target address to send log messages to") - .arg("facility", "syslog facility to send messages to. One of\n" - " AUTHPRIV CRON DAEMON FTP KERN LPR MAIL NEWS SYSLOG USER\n" - " UUCP LOCAL0 LOCAL1 LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7", - kw::default_value = USER) - .doc("Create new udp target. The {address} can be an IPv4 or IPv6 address. If the port\n" - "number is omitted, it defaults to the default syslog port 514. Examples:\n" - "\n" - "Create new udp target sending messages to the syslog daemon running at localhost\n" - " $ udp-target localhost\n" - " \n" - "\n" - "In a configuration file, create new udp target and set some parameters (If\n" - "written on one line, this works at the console too:\n" - " /sys/log/udp-target localhost:2345 LOCAL2 {\n" - " route (IMPORTANT); # route all important messages\n" - " timeFormat \"\"; # use non-formatted time format\n" - " showArea false; # don't show log area\n" - " syslog false; # no syslog format, just plain udp\n" - " }\n"); - detail::TargetRegistry::instance().consoleDir().add( - "udp-target", - static_cast( - &RegisterConsole::create)) - .arg("address") - .arg("facility", kw::default_value = USER); - detail::TargetRegistry::instance().consoleDir().add( - "udp-target", - static_cast( - &RegisterConsole::create)) - .arg("address") - .arg("facility", kw::default_value = USER); - detail::TargetRegistry::instance().consoleDir().add( - "udp-target", - static_cast( - &RegisterConsole::create)) - .arg("address") - .arg("facility", kw::default_value = USER); + namespace kw = console::kw; + namespace fty = console::factory; + + detail::TargetRegistry::instance().consoleDir() + .add("udp-target", + fty::Command(&RegisterConsole::create) + .arg("address", "target address to send log messages to") + .arg("facility", "syslog facility to send messages to. One of\n" + " AUTHPRIV CRON DAEMON FTP KERN LPR MAIL NEWS SYSLOG USER\n" + " UUCP LOCAL0 LOCAL1 LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7", + kw::default_value = USER) + .doc("Create new udp target. The {address} can be an IPv4 or IPv6 address. If the port\n" + "number is omitted, it defaults to the default syslog port 514. Examples:\n" + "\n" + "Create new udp target sending messages to the syslog daemon running at localhost\n" + " $ udp-target localhost\n" + " \n" + "\n" + "In a configuration file, create new udp target and set some parameters (If\n" + "written on one line, this works at the console too:\n" + " /sys/log/udp-target localhost:2345 LOCAL2 {\n" + " route (IMPORTANT); # route all important messages\n" + " timeFormat \"\"; # use non-formatted time format\n" + " showArea false; # don't show log area\n" + " syslog false; # no syslog format, just plain udp\n" + " }\n") ); + detail::TargetRegistry::instance().consoleDir() + .add("udp-target", + fty::Command(&RegisterConsole::create) + .arg("address") + .arg("facility", kw::default_value = USER) ); + detail::TargetRegistry::instance().consoleDir() + .add("udp-target", + fty::Command(&RegisterConsole::create) + .arg("address") + .arg("facility", kw::default_value = USER) ); + detail::TargetRegistry::instance().consoleDir() + .add("udp-target", + fty::Command(&RegisterConsole::create) + .arg("address") + .arg("facility", kw::default_value = USER) ); } prefix_ boost::shared_ptr -senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet4SocketAddress const & target, +senf::log::SyslogUDPTarget::RegisterConsole::create(INet4SocketAddress const & target, LogFacility facility) { std::auto_ptr tp (new SyslogUDPTarget(target, facility)); @@ -164,7 +169,7 @@ senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet4SocketAddress con } prefix_ boost::shared_ptr -senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet4Address const & target, +senf::log::SyslogUDPTarget::RegisterConsole::create(INet4Address const & target, LogFacility facility) { std::auto_ptr tp (new SyslogUDPTarget(target, facility)); @@ -174,7 +179,7 @@ senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet4Address const & t } prefix_ boost::shared_ptr -senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet6SocketAddress const & target, +senf::log::SyslogUDPTarget::RegisterConsole::create(INet6SocketAddress const & target, LogFacility facility) { std::auto_ptr tp (new SyslogUDPTarget(target, facility)); @@ -184,7 +189,7 @@ senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet6SocketAddress con } prefix_ boost::shared_ptr -senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet6Address const & target, +senf::log::SyslogUDPTarget::RegisterConsole::create(INet6Address const & target, LogFacility facility) { std::auto_ptr tp (new SyslogUDPTarget(target, facility)); @@ -193,7 +198,7 @@ senf::log::SyslogUDPTarget::RegisterConsole::create(senf::INet6Address const & t return tg.consoleDir().node().thisptr(); } -///////////////////////////////cc.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #undef prefix_ //#include "SyslogUDPTarget.mpp"