// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
// Stefan Bund <g0dil@berlios.de>
//
// This program is free software; you can redistribute it and/or modify
namespace senf {
namespace log {
-
- class TargetRegistry;
+
+ namespace detail { class TargetRegistry; }
/** \brief Logging target base class
- Targets are the final destination of log messages. Every message is eventually routed to one
+ Targets are the final destination of %log messages. Every message is eventually routed to one
or several targets.
\section target_routing Routing
The target may process in any arbitrary way: reformat, writing it into an SQL DB, whatever
can be envisioned. However, there is one important limitation: The \c v_write call must not
- block. So for more complex scenarios, additional measures must be taken (e.g. writing a log
+ block. So for more complex scenarios, additional measures must be taken (e.g. writing a %log
backend daemon which receives the messages via UDP and processes them). Of course, in rare
cases messages might be lost but this cannot be avoided.
See the class description for information on the \a
action and \a index parameters
- \param[in] Stream mandatory stream to match
- \param[in] Area optional area to match
- \param[in] Level optional level, matches messages with
+ \tparam Stream mandatory stream to match
+ \tparam Area optional area to match
+ \tparam Level optional level, matches messages with
at least the given level.
\param[in] action routing action to take
\param[in] index position of new route in the routing
found, it will be removed, otherwise the call will be
ignored
- \param[in] Stream mandatory stream to match
- \param[in] Area optional area to match
- \param[in] Level optional level, matches messages with
+ \tparam Stream mandatory stream to match
+ \tparam Area optional area to match
+ \tparam Level optional level, matches messages with
at least the given level.
\param[in] action routing action to take */
std::string const & message) = 0;
///< Called to write out the routing message
/**< This member must be defined in the derived class to
- somehow format and write the log message.
+ somehow format and write the %log message.
- Every log message always possesses a complete set of
+ Every %log message always possesses a complete set of
meta information (\a stream, \a area and \a level).
\note This member must \e not block since it may be
simple logging over NFS or many other network
protocols.
- \param[in] timestamp log message timing information
+ \param[in] timestamp %log message timing information
\param[in] stream message stream
\param[in] area message area
\param[in] level message level
RIB rib_;
friend class detail::AreaBase;
+ friend class detail::TargetRegistry;
};
/** \brief Log message time source abstract base class
virtual boost::posix_time::ptime operator()() const = 0;
};
- /** \brief Default log message time source
+ /** \brief Default %log message time source
This time source is installed by default and uses gettimeofday() (via the Boost.DateTime
library) to get the current universal time.