X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FLogger%2FTarget.ih;h=4b81e2eecce481234ce496ee985acdb9a2fd6dd6;hb=61dc3812717cdc89fa2402006d4009236b72dc8f;hp=f926f875601ab2c9f46dace239f98904e30c6c4a;hpb=6cfb0a8ca46d3cb0cc521a75118027ecc3fa4ef1;p=senf.git diff --git a/Utils/Logger/Target.ih b/Utils/Logger/Target.ih index f926f87..4b81e2e 100644 --- a/Utils/Logger/Target.ih +++ b/Utils/Logger/Target.ih @@ -30,14 +30,33 @@ #include #include #include +#include #include "../Console/LazyDirectory.hh" +#include "../Console/Parse.hh" ///////////////////////////////ih.p//////////////////////////////////////// namespace senf { + + namespace console { class DirectoryNode; } + namespace log { namespace detail { + struct LogParameters { + StreamBase const * stream; + AreaBase const * area; + unsigned level; + void clear(); + void setDefaults(); + static LogParameters defaultParameters(); + }; + + std::ostream & operator<<(std::ostream & os, LogParameters const & pm); + + void senf_console_parse_argument(console::ParseCommandInfo::TokensRange const & tokens, + LogParameters & out); + /** \brief Internal: Target registry */ class TargetRegistry : public senf::singleton @@ -73,9 +92,9 @@ namespace detail { void consoleAreas(std::ostream & os); void consoleStreams(std::ostream & os); - void consoleWrite(std::string const & stream, std::string const & area, Level level, - std::string const & msg); + void consoleWrite(LogParameters parameters, std::string const & msg); void consoleRemoveTarget(Target * target); + boost::shared_ptr consoleSelf(std::ostream & os); typedef std::set Targets; Targets targets_;