|
PLearn 0.1
|
#include <pl_log.h>

Classes | |
| struct | Heading |
| Support stuff for heading manipulator. More... | |
Public Member Functions | |
| PL_Log (PP< PL_LogPlugin > plugin) | |
| Constructor (Use default destructor, copy constructor, etc.) | |
| void | verbosity (int v) |
| Set the actual runtime verbosity. | |
| int | verbosity () const |
| Return the current runtime verbosity. | |
| void | outmode (PStream::mode_t outmode) |
| Changes the output_stream outmode. | |
| PStream & | logger (int requested_verbosity) |
| Underlying logging function. | |
| PStream & | namedLogger (const string &module_name, int requested_verbosity) |
| Underlying named logging function. | |
| void | enableNamedLogging (const vector< string > &module_names) |
| Named logging support. | |
| void | enableNamedLogging (const string &comma_separated_module_names) |
| Shortcut for enableNamedLogging: first split the module names by comma and call enableNamedLogging -- convenient for in-code logging enabling. | |
| vector< string > | namedLogging () const |
| Return the list of modules for which named logging is enabled. | |
| bool | loggingEnabled (const string &module_name) const |
| Return true if logging is enabled for the given module. | |
| long | loggerCount () const |
| Return number of times logger() has been called. | |
| PP< PL_LogPlugin > | getCurrentPlugin () |
| Return the current plugin. | |
| void | setPlugin (PP< PL_LogPlugin > plugin) |
| Set a new plugin. | |
Static Public Member Functions | |
| static PL_Log & | instance () |
| Return system-wide PL_Log. | |
| static VerbosityLevel | vlevelFromString (const string &v) |
| Parses a string to see whether or not it names a VerbosityLevel. | |
Protected Types | |
| enum | { AllModules = 0, NoModules = 1, SomeModules = 2 } |
Protected Attributes | |
| int | runtime_verbosity |
| PP< PL_LogPlugin > | m_plugin |
| Used to obtain the actual logging stream. | |
| PStream | null_stream |
| Used when there is nothing to output. | |
| PStream::mode_t | m_outmode |
| Formatting instructions for logging. | |
| long | logger_count |
| Number of times logger() has been called. | |
| set< string > | enabled_modules |
| Modules for which logging is enabled. | |
| enum PLearn::PL_Log:: { ... } | named_logging_kind |
anonymous enum [protected] |
| AllModules |
Named logging enabled for all modules. |
| NoModules |
Named logging enabled for no modules. |
| SomeModules |
Named logging enabled for some modules. |
Definition at line 282 of file pl_log.h.
{
AllModules = 0,
NoModules = 1,
SomeModules = 2
} named_logging_kind;
| PLearn::PL_Log::PL_Log | ( | PP< PL_LogPlugin > | plugin | ) |
Constructor (Use default destructor, copy constructor, etc.)
Definition at line 189 of file pl_log.cc.
: runtime_verbosity(VLEVEL_NORMAL), m_plugin(plugin), null_stream(get_pnull()), m_outmode(PStream::raw_ascii), logger_count(0), named_logging_kind(NoModules) { }
| void PLearn::PL_Log::enableNamedLogging | ( | const vector< string > & | module_names | ) |
Named logging support.
Enable named logging for the specified modules.
Enable logging for the specified list of modules. If the special "__ALL__" keyword is used, then all named logging is enabled. If the special "__NONE__" keyword is used, then no named logging is enabled. (Default = "__NONE__")
Watch if one of the elements is one of the special keywords __ALL__ or __NONE__, and handle them accordingly.
Definition at line 237 of file pl_log.cc.
References AllModules, enabled_modules, i, n, named_logging_kind, NoModules, and SomeModules.
Referenced by enableNamedLogging(), PLearn::global_options(), PLearn::Plide::loggingControl(), PLearn::ConjRosenbrock::perform(), PLearn::RunCommand::run(), and PLearn::PyPLearnScript::run().
{
enabled_modules.clear();
named_logging_kind = SomeModules;
for (int i=0, n=int(module_names.size()) ; i<n ; ++i) {
if (module_names[i] == "__ALL__") {
named_logging_kind = AllModules;
break;
}
else if (module_names[i] == "__NONE__") {
named_logging_kind = NoModules;
break;
}
else
enabled_modules.insert(module_names[i]);
}
}

| void PLearn::PL_Log::enableNamedLogging | ( | const string & | comma_separated_module_names | ) |
Shortcut for enableNamedLogging: first split the module names by comma and call enableNamedLogging -- convenient for in-code logging enabling.
Definition at line 260 of file pl_log.cc.
References enableNamedLogging(), and PLearn::split().
{
vector<string> module_names = split(comma_separated_module_names,
", \t\n\r");
enableNamedLogging(module_names);
}

| PP<PL_LogPlugin> PLearn::PL_Log::getCurrentPlugin | ( | ) | [inline] |
Return the current plugin.
Definition at line 248 of file pl_log.h.
References m_plugin.
Referenced by PLearn::Plide::run().
{
return m_plugin;
}

| PL_Log & PLearn::PL_Log::instance | ( | ) | [static] |
Return system-wide PL_Log.
Definition at line 296 of file pl_log.cc.
References PLearn::get_perr().
Referenced by PLearn::PLearnService::connectToServers(), PLearn::global_options(), PLearn::Plide::loggingControl(), PLearn::PLLogTest::perform(), PLearn::ConjRosenbrock::perform(), PLearn::AutoVMatrixTest::perform(), PLearn::PyPLearnScript::process(), PLearn::RunCommand::run(), PLearn::PyPLearnScript::run(), and PLearn::Plide::run().
{
static PP<PL_LogPlugin> global_plugin = new PL_LogPluginPStream(get_perr());
static PL_Log global_logger(global_plugin);
return global_logger;
}


Underlying logging function.
Return a logger object given verbosity only.
If "requested_verbosity" is less than or equal to verbosity, then output_stream is returned; otherwise null_stream is returned.
Definition at line 202 of file pl_log.cc.
References logger_count, m_outmode, m_plugin, null_stream, PLASSERT, and runtime_verbosity.
{
static const string module_name; // Empty string
PLASSERT( m_plugin );
logger_count++;
if (requested_verbosity <= runtime_verbosity)
return m_plugin->getStream(m_outmode, module_name, requested_verbosity);
else
return null_stream;
}
| long PLearn::PL_Log::loggerCount | ( | ) | const [inline] |
Return number of times logger() has been called.
Definition at line 245 of file pl_log.h.
References logger_count.
{ return logger_count; }
| bool PLearn::PL_Log::loggingEnabled | ( | const string & | module_name | ) | const |
Return true if logging is enabled for the given module.
Return true if logging is enabled for the specified module.
Definition at line 288 of file pl_log.cc.
References AllModules, enabled_modules, named_logging_kind, and SomeModules.
{
return (named_logging_kind == AllModules ||
(named_logging_kind == SomeModules &&
enabled_modules.find(module_name) != enabled_modules.end()));
}
Underlying named logging function.
Return a logger if logging is enabled for the specified module name.
Use this in conjunction with the MODULE_LOG define. If logging is enabled for the specified module, then return output_stream; otherwise return null_stream.
Definition at line 217 of file pl_log.cc.
References AllModules, enabled_modules, logger_count, m_outmode, m_plugin, named_logging_kind, null_stream, runtime_verbosity, and SomeModules.
{
logger_count++;
if (requested_verbosity <= runtime_verbosity &&
(named_logging_kind == AllModules ||
(named_logging_kind == SomeModules &&
enabled_modules.find(module_name) != enabled_modules.end())))
{
return m_plugin->getStream(m_outmode, module_name, requested_verbosity);
}
return null_stream;
}
| vector< string > PLearn::PL_Log::namedLogging | ( | ) | const |
Return the list of modules for which named logging is enabled.
Definition at line 271 of file pl_log.cc.
References AllModules, std::copy(), enabled_modules, named_logging_kind, and NoModules.
{
vector<string> r;
if (named_logging_kind == AllModules)
r.push_back("__ALL__");
else if (named_logging_kind == NoModules)
r.push_back("__NONE__");
else
copy(enabled_modules.begin(), enabled_modules.end(), back_inserter(r));
return r;
}

| void PLearn::PL_Log::outmode | ( | PStream::mode_t | outmode | ) | [inline] |
Changes the output_stream outmode.
Definition at line 209 of file pl_log.h.
References m_outmode, and outmode().
Referenced by outmode(), PLearn::AutoVMatrixTest::perform(), and PLearn::Plide::run().


| void PLearn::PL_Log::setPlugin | ( | PP< PL_LogPlugin > | plugin | ) | [inline] |
| int PLearn::PL_Log::verbosity | ( | ) | const [inline] |
Return the current runtime verbosity.
Definition at line 206 of file pl_log.h.
References runtime_verbosity.
{ return runtime_verbosity; }
| void PLearn::PL_Log::verbosity | ( | int | v | ) | [inline] |
Set the actual runtime verbosity.
This is a verbosity threshold; any "requested_verbosity" less than or equal to this verbosity is displayed by PL_LOG.
Definition at line 203 of file pl_log.h.
References runtime_verbosity.
Referenced by PLearn::global_options(), PLearn::Plide::loggingControl(), PLearn::PLLogTest::perform(), PLearn::ConjRosenbrock::perform(), PLearn::AutoVMatrixTest::perform(), PLearn::RunCommand::run(), and PLearn::PyPLearnScript::run().
{ runtime_verbosity = v; }

| VerbosityLevel PLearn::PL_Log::vlevelFromString | ( | const string & | v | ) | [static] |
Parses a string to see whether or not it names a VerbosityLevel.
If it doesn't, tries the cast to an int.
Definition at line 308 of file pl_log.cc.
References return, PLearn::toint(), PLearn::VLEVEL_DBG, PLearn::VLEVEL_EXTREME, PLearn::VLEVEL_IMP, PLearn::VLEVEL_MAND, and PLearn::VLEVEL_NORMAL.
Referenced by PLearn::global_options().
{
static map<string, VerbosityLevel> _vlevels;
if ( _vlevels.size() == 0 )
{
_vlevels["VLEVEL_MAND"] = VLEVEL_MAND;
_vlevels["VLEVEL_IMP"] = VLEVEL_IMP;
_vlevels["VLEVEL_NORMAL"] = VLEVEL_NORMAL ;
_vlevels["VLEVEL_DBG"] = VLEVEL_DBG ;
_vlevels["VLEVEL_EXTREME"] = VLEVEL_EXTREME;
}
map<string, VerbosityLevel>::iterator it = _vlevels.find(v);
if ( it != _vlevels.end() )
return it->second;
return (VerbosityLevel)toint(v);
}


set<string> PLearn::PL_Log::enabled_modules [protected] |
Modules for which logging is enabled.
Definition at line 280 of file pl_log.h.
Referenced by enableNamedLogging(), loggingEnabled(), namedLogger(), and namedLogging().
long PLearn::PL_Log::logger_count [protected] |
Number of times logger() has been called.
Definition at line 279 of file pl_log.h.
Referenced by logger(), loggerCount(), and namedLogger().
PStream::mode_t PLearn::PL_Log::m_outmode [protected] |
Formatting instructions for logging.
Definition at line 278 of file pl_log.h.
Referenced by logger(), namedLogger(), and outmode().
PP<PL_LogPlugin> PLearn::PL_Log::m_plugin [protected] |
Used to obtain the actual logging stream.
Definition at line 276 of file pl_log.h.
Referenced by getCurrentPlugin(), logger(), namedLogger(), and setPlugin().
enum { ... } PLearn::PL_Log::named_logging_kind [protected] |
Referenced by enableNamedLogging(), loggingEnabled(), namedLogger(), and namedLogging().
PStream PLearn::PL_Log::null_stream [protected] |
Used when there is nothing to output.
Definition at line 277 of file pl_log.h.
Referenced by logger(), and namedLogger().
int PLearn::PL_Log::runtime_verbosity [protected] |
Definition at line 275 of file pl_log.h.
Referenced by logger(), namedLogger(), and verbosity().
1.7.4