X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FIOStreamTarget.hh;h=8aa5829b2077fd25ef79cd939d8469f61b59a15d;hb=a726ae0cb14d0ce37e5aab3c4e07121bbbd3b31c;hp=84e66fc5047ca77dd67e9c403a721164ab576a7a;hpb=a1a6c76a214ad1935032826713cabaf9ac57bf07;p=senf.git diff --git a/Utils/Logger/IOStreamTarget.hh b/Utils/Logger/IOStreamTarget.hh index 84e66fc..8aa5829 100644 --- a/Utils/Logger/IOStreamTarget.hh +++ b/Utils/Logger/IOStreamTarget.hh @@ -23,8 +23,8 @@ /** \file \brief IOStreamTarget public header */ -#ifndef HH_IOStreamTarget_ -#define HH_IOStreamTarget_ 1 +#ifndef HH_SENF_Utils_Logger_IOStreamTarget_ +#define HH_SENF_Utils_Logger_IOStreamTarget_ 1 // Custom includes #include @@ -40,25 +40,12 @@ namespace log { /** \brief Write %log messages to arbitrary std::ostream This target will write %log messages to an arbitrary std::ostream in the format -
-         [] 
-        
+ \verbatim [][] \endverbatim - The \e area will be omitted it it is \c senf::log::DefaultArea. + The \e area will be omitted if it is \c senf::log::DefaultArea. - The date formatting is set using the Boost.DateTime date_facet, e.g.: - \code - stream.imbue( std::locale(stream.getloc(), - new boost::posix_time::time_facet("%Y%m%d %H:%M:%S")) ); - \endcode - - By default, the date-time will be written in extended ISO format. - \warning The class keeps a reference to the passed stream. - \note This class will permanently and globally change the date formating of the given - stream if no \c boost::posix_time::time_facet has been set. - \ingroup targets */ class IOStreamTarget @@ -74,21 +61,50 @@ namespace log { ///@} /////////////////////////////////////////////////////////////////////////// + void showTime(bool flag = true); ///< Enable or disable output of time field + void showStream(bool flag = true); ///< Enable or disable output of stream field + void showLevel(bool flag = true); ///< Enable or disable output of log level + void showArea(bool flag = true); ///< Enable or disable output of log area + + void timeFormat(std::string const & format); + ///< Set time format + /**< The date formatting is set using the Boost.DateTime + date_facet, e.g. + \code + target.timeFormat("%Y%m%d %H:%M:%S"); + \endcode + If the \c timeFormat is set to the empty string, the + time is written out as unformatted ClockService value. + + By default, the date-time will be written in extended + ISO format. + \param[in] format Date/Time format string */ + + void tag(std::string const & tag); + protected: - - private: - void v_write(boost::posix_time::ptime timestamp, std::string const & stream, + void v_write(time_type timestamp, std::string const & stream, std::string const & area, unsigned level, std::string const & message); + private: std::ostream & stream_; - }; + std::string tag_; + std::stringstream datestream_; + bool noformat_; + bool showTime_; + bool showStream_; + bool showLevel_; + bool showArea_; + + time_type timeBase_; + }; }} ///////////////////////////////hh.e//////////////////////////////////////// -//#include "IOStreamTarget.cci" +#include "IOStreamTarget.cci" //#include "IOStreamTarget.ct" //#include "IOStreamTarget.cti" #endif