//#include "SyslogTarget.ih"
// Custom includes
+#include "../Console/Console.hh"
//#include "SyslogTarget.mpp"
#define prefix_
syslog(facility_ | LEVELMAP[level], "%s", message.c_str());
}
+namespace senf {
+namespace log {
+
+ SENF_CONSOLE_REGISTER_ENUM_MEMBER(SyslogTarget, LogFacility,
+ (AUTHPRIV)(CRON)(DAEMON)(FTP)(KERN)(LPR)(MAIL)(NEWS)(SYSLOG)
+ (USER)(UUCP)(LOCAL0)(LOCAL1)(LOCAL2)(LOCAL3)(LOCAL4)(LOCAL5)
+ (LOCAL6)(LOCAL7));
+
+}}
+
+prefix_ senf::log::SyslogTarget::RegisterConsole::RegisterConsole()
+{
+ namespace kw = senf::console::kw;
+
+ detail::TargetRegistry::instance().consoleDir().add("syslog-target",&RegisterConsole::create)
+ .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 syslog target. Examples:\n"
+ "\n"
+ "Create new syslog target\n"
+ " $ syslog-target\n"
+ " <Directory '/sys/log/syslog'>\n"
+ "\n"
+ "In a configuration file, create new syslog target and set some parameters (If\n"
+ "written on one line, this works at the console too:\n"
+ " /sys/log/syslog-target LOCAL2 {\n"
+ " route (IMPORTANT); # route all important messages\n"
+ " timeFormat \"\"; # use non-formatted time format\n"
+ " showArea false; # don't show log area\n"
+ " }\n");
+}
+
+prefix_ boost::shared_ptr<senf::console::DirectoryNode>
+senf::log::SyslogTarget::RegisterConsole::create(LogFacility facility)
+{
+ std::auto_ptr<Target> tp (new SyslogTarget(facility));
+ Target & target (*tp.get());
+ detail::TargetRegistry::instance().dynamicTarget(tp);
+ return target.consoleDir().node().thisptr();
+}
+
///////////////////////////////cc.e////////////////////////////////////////
#undef prefix_
//#include "SyslogTarget.mpp"