BIND 10 trac976, updated. bddb6473013e4cc91d4a76f182702d0bd1856f2c [trac976] Add syslog as option for logging output
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Jun 3 17:01:01 UTC 2011
The branch, trac976 has been updated
via bddb6473013e4cc91d4a76f182702d0bd1856f2c (commit)
from 21b0e9d23d1c72940fb01f3dc9ad6c7975abaf5d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit bddb6473013e4cc91d4a76f182702d0bd1856f2c
Author: Stephen Morris <stephen at isc.org>
Date: Fri Jun 3 17:59:58 2011 +0100
[trac976] Add syslog as option for logging output
-----------------------------------------------------------------------
Summary of changes:
src/lib/log/logger_manager_impl.cc | 29 ++++++++++++++++++++++++++++-
src/lib/log/logger_manager_impl.h | 17 +++++++++++++----
src/lib/log/output_option.h | 6 +++---
3 files changed, 44 insertions(+), 8 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/log/logger_manager_impl.cc b/src/lib/log/logger_manager_impl.cc
index 510ffe5..98fd771 100644
--- a/src/lib/log/logger_manager_impl.cc
+++ b/src/lib/log/logger_manager_impl.cc
@@ -19,6 +19,7 @@
#include <log4cplus/configurator.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/fileappender.h>
+#include <log4cplus/syslogappender.h>
#include "log/logger_level_impl.h"
#include "log/logger_manager.h"
@@ -82,7 +83,7 @@ LoggerManagerImpl::processSpecification(const LoggerSpecification& spec) {
break;
case OutputOption::DEST_SYSLOG:
- createSyslogAppender(logger, *i);
+ createSysLogAppender(logger, *i);
break;
default:
@@ -134,6 +135,17 @@ LoggerManagerImpl::createFileAppender(log4cplus::Logger& logger,
logger.addAppender(fileapp);
}
+// SysLog appender.
+void
+LoggerManagerImpl::createSysLogAppender(log4cplus::Logger& logger,
+ const OutputOption& opt)
+{
+ log4cplus::SharedAppenderPtr syslogapp(
+ new log4cplus::SysLogAppender(opt.facility));
+ setSysLogAppenderLayout(syslogapp);
+ logger.addAppender(syslogapp);
+}
+
// One-time initialization of the log4cplus system
@@ -194,5 +206,20 @@ void LoggerManagerImpl::setConsoleAppenderLayout(
appender->setLayout(layout);
}
+// Set the the "syslog" layout for the given appenders. This is the same
+// as the console, but without the timestamp (which is expected to be
+// set by syslogd).
+
+void LoggerManagerImpl::setSysLogAppenderLayout(
+ log4cplus::SharedAppenderPtr& appender)
+{
+ // Create the pattern we want for the output - local time.
+ string pattern = "%-5p [" + getRootLoggerName() + string(".%c] %m\n");
+
+ // Finally the text of the message
+ auto_ptr<log4cplus::Layout> layout(new log4cplus::PatternLayout(pattern));
+ appender->setLayout(layout);
+}
+
} // namespace log
} // namespace isc
diff --git a/src/lib/log/logger_manager_impl.h b/src/lib/log/logger_manager_impl.h
index e384112..a440e73 100644
--- a/src/lib/log/logger_manager_impl.h
+++ b/src/lib/log/logger_manager_impl.h
@@ -127,8 +127,8 @@ private:
///
/// \param logger Log4cplus logger to which the appender must be attached.
/// \param opt Output options for this appender.
- static void createSyslogAppender(log4cplus::Logger& logger,
- const OutputOption& opt) {}
+ static void createSysLogAppender(log4cplus::Logger& logger,
+ const OutputOption& opt);
/// \brief Set default layout and severity for root logger
///
@@ -145,11 +145,20 @@ private:
/// Sets the layout of the specified appender to one suitable for file
/// or console output:
///
- /// YYYY-MM-DD HH:MM:SS.ssss <severity> [root.logger] message
+ /// YYYY-MM-DD HH:MM:SS.ssss SEVERITY [root.logger] message
///
/// \param appender Appender for which this pattern is to be set.
- /// \param root_name Name of the BIND 10 root logger.
static void setConsoleAppenderLayout(log4cplus::SharedAppenderPtr& appender);
+
+ /// \brief Set layout for syslog appender
+ ///
+ /// Sets the layout of the specified appender to one suitable for the
+ /// syslog file:
+ ///
+ /// SEVERITY [root.logger] message
+ ///
+ /// \param appender Appender for which this pattern is to be set.
+ static void setSysLogAppenderLayout(log4cplus::SharedAppenderPtr& appender);
};
} // namespace log
diff --git a/src/lib/log/output_option.h b/src/lib/log/output_option.h
index 111ee76..cbb7e95 100644
--- a/src/lib/log/output_option.h
+++ b/src/lib/log/output_option.h
@@ -60,8 +60,8 @@ struct OutputOption {
/// \brief Constructor
OutputOption() : destination(DEST_CONSOLE), stream(STR_STDERR),
- flush(false), facility(""), filename(""), maxsize(0),
- maxver(0)
+ flush(false), facility("LOCAL0"), filename(""),
+ maxsize(0), maxver(0)
{}
/// Members.
@@ -72,7 +72,7 @@ struct OutputOption {
std::string facility; ///< syslog facility
std::string filename; ///< Filename if file output
size_t maxsize; ///< 0 if no maximum size
- int maxver; ///< Maximum versions (none if <= 0)
+ unsigned int maxver; ///< Maximum versions (none if <= 0)
};
OutputOption::Destination getDestination(const std::string& dest_str);
More information about the bind10-changes
mailing list