Examples for typical usage senarios with OpenDaVINCI¶
Using the logging interface in OpenDaVINCI¶
OpenDaVINCI has a built-in logging engine. Its fundamental concept is
realized by odsupercomponent
as it is required to start a communication
session for distributed modules anyways.
In order to use the logging engine in a user-supplied module, you can
simply call the following method from within your module deriving from
DataTriggeredConferenceClientModule
or TimeTriggeredConferenceClientModule
:
void toLogger(const odcore::data::LogMessage::LogLevel &logLevel, const string &msg);
Example:
toLogger(odcore::data::LogMessage::INFO, "this is an info message");
By using this method, "this is an info message"
is sent to the UDP
multicast conference using the logging level logLevel
. The logLevel
can
be either odcore::data::LogMessage::NONE
, odcore::data::LogMessage::INFO
, odcore::data::LogMessage::WARN
, or odcore::data::LogMessage::DEBUG
. odsupercomponent
is receiving the log data and storing it to a file depending on its
command line parameters.
On startup of odsupercomponent
, you need to specify the following
command line parameters to setup the logging:
--logLevel
--logFile
The first parameter specifies the logging level up to which messages from
distributed modules are stored in the log file. Thus,
if you specify --logLevel=INFO
any messages that are tagged as
odcore::data::LogMessage::NONE
or odcore::data::LogMessage::INFO
will be stored but
odcore::data::LogMessage::WARN
and odcore::data::LogMessage::DEBUG
are discarded.
If you omit the parameter, odcore::data::LogMessage::NONE
is assumed.
The second parameter specifies the log file where the log data is stored. The data itself has the following format:
<time stamp in microseconds> ; <name of the sending module> ; <numerical log level, 0 - 3> ; <message> ;
Example:
$ odsupercomponent --cid=111 --loglevel=info --logfile=mylogfile.log
This feature was contributed by Ashfaq Hussain Farooqui (https://twitter.com/me_rafiki) and will be available from release 1.3.0.