|
RTAB-Map 0.23.10
Real-Time Appearance-Based Mapping
|
#include <ULogger.h>
Public Types | |
| enum | Type { kTypeNoLog , kTypeConsole , kTypeFile } |
| enum | Level { kDebug , kInfo , kWarning , kError , kFatal } |
Static Public Member Functions | |
| static void | setType (Type type, const std::string &fileName=kDefaultLogFileName, bool append=true) |
| static Type | type () |
| static void | setPrintTime (bool printTime) |
| static bool | isPrintTime () |
| static void | setPrintLevel (bool printLevel) |
| static bool | isPrintLevel () |
| static void | setPrintEndline (bool printEndline) |
| static bool | isPrintEndLine () |
| static void | setPrintColored (bool printColored) |
| static bool | isPrintColored () |
| static void | setPrintWhere (bool printWhere) |
| static bool | isPrintWhere () |
| static void | setPrintThreadId (bool printThreadId) |
| static bool | isPrintThreadId () |
| static void | setPrintWhereFullPath (bool printWhereFullPath) |
| static bool | isPrintWhereFullPath () |
| static void | setBuffered (bool buffered) |
| static bool | isBuffered () |
| static void | setLevel (ULogger::Level level) |
| static ULogger::Level | level () |
| static void | setEventLevel (ULogger::Level eventSentLevel) |
| static ULogger::Level | eventLevel () |
| static void | setTreadIdFilter (const std::set< unsigned long > &ids) |
| static void | setTreadIdFilter (const std::vector< std::string > &ids) |
| static const std::set< unsigned long > & | getTreadIdFilter () |
| static void | registerCurrentThread (const std::string &name) |
| static void | unregisterCurrentThread () |
| static std::map< std::string, unsigned long > | getRegisteredThreads () |
| static void | reset () |
| static void | flush () |
| static void | write (ULogger::Level level, const char *file, int line, const char *function, const char *msg,...) |
| static int | getTime (std::string &timeStr) |
Static Public Attributes | |
| static const std::string | kDefaultLogFileName |
Protected Member Functions | |
| void | _flush () |
Static Protected Member Functions | |
| static ULogger * | getInstance () |
Static Protected Attributes | |
| static std::string | logFileName_ |
| static bool | append_ |
Friends | |
| class | UDestroyer< ULogger > |
This class is used to log messages with time on a console, in a file and/or with an event. At the start of the application, call ULogger::setType() with the type of the logger you want (see ULogger::Type, the type of the output can be changed at the run-time.). To use it, simply call the convenient macros UDEBUG(), UINFO(), UWARN(), UERROR(), UFATAL() depending of the severity of the message. You can disable some messages by setting the logger level ULogger::setLevel() to severity you want, defined by ULogger::Level. A fatal message will make the application to exit, printing the message on console (whatever the logger type) and posting a ULogEvent (synchronously... see UEventsManager::post()) before exiting.
The display of the logged messages can be modified:
When using a file logger (kTypeLogger), it can be useful in some application to buffer messages before writing them to hard drive (avoiding hard drive latencies). You can set ULogger::setBuffered() to true to do that. When the buffered messages will be written to file on appllciation exit (ULogger destructor) or when ULogger::flush() is called.
If you want the application to exit on a lower severity level than kFatal, you can set ULogger::setExitLevel() to any ULogger::Type you want.
Example:
Output:
Another useful form of the ULogger is to use it with the UTimer class. Here an example:
| enum ULogger::Type |
| enum ULogger::Level |
|
static |
Set the type of the logger. When using kTypeFile, the parameter "fileName" would be changed (default is "./ULog.txt"), and optionally "append" if we want the logger to append messages to file or to overwrite the file.
| type | the ULogger::Type of the logger. |
| fileName | file name used with a file logger type. |
| append | if true, the file isn't overwritten, otherwise it is. |
TODO : Can it be useful to have 2 or more types at the same time ? Print in console and file at the same time.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
Print the full path: default true. ULogger::setPrintWhere() must be true to have path printed.
| printWhereFullPath | true to print the full path, otherwise set to false. |
|
inlinestatic |
|
static |
Set is the logger buffers messages, default false. When true, the messages are buffered until the application is closed or ULogger::flush() is called.
Note that if logging to a file, flush doesn't mean that messages are written to file right away. To write everything on disk, set logger type to kTypeNoLog.
| buffered | true to buffer messages, otherwise set to false. |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
An ULogEvent is sent on each message logged at the specified level. Note : On message with level >= exitLevel, the event is sent synchronously (see UEventsManager::post()).
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
Threads can register to this list. If name is empty, it will clear the thread in the list. Should be called from the thread itself.
|
static |
Reset to default parameters.
|
static |
Flush buffered messages.
|
static |
Get the time in the format "2008-7-13 12:23:44".
| timeStr | string were the time will be copied. |
|
friend |
|
static |