/** \file
\brief FileTarget public header */
-#ifndef HH_FileTarget_
-#define HH_FileTarget_ 1
+#ifndef HH_SENF_Utils_Logger_FileTarget_
+#define HH_SENF_Utils_Logger_FileTarget_ 1
// Custom includes
#include <boost/utility.hpp>
+#include <boost/shared_ptr.hpp>
#include <fstream>
#include "IOStreamTarget.hh"
///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
+
+ namespace console { class DirectoryNode; }
+
namespace log {
/** \brief Log target writing to a %log file.
///\name Structors and default members
///@{
- explicit FileTarget(std::string file); ///< Construct FileTarget writing to \a file
+ explicit FileTarget(std::string const & filename, std::string const & nodename = "");
+ ///< Construct FileTarget writing to \a file
///@}
///////////////////////////////////////////////////////////////////////////
void reopen(); ///< Reopen %log after log-file rotation
- void reopen(std::string file); ///< Reopen %log under a new name
+ void reopen(std::string const & file); ///< Reopen %log under a new name
+
+ std::string const & filename() const; ///< Return current log file name
private:
std::string file_;
+
+ struct RegisterConsole {
+ RegisterConsole();
+ static boost::shared_ptr<senf::console::DirectoryNode> create(
+ std::string const & filename, std::string const & nodename);
+ static RegisterConsole instance;
+ };
};
}}