A concrete instance of LogStream that dumps messages to a C++ std::ostream object.
More...
#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.6.0/src/axom/slic/streams/SynchronizedStream.hpp>
|
| SynchronizedStream (std::ostream *stream, MPI_Comm comm) |
|
| SynchronizedStream (std::ostream *stream, MPI_Comm comm, const std::string &format) |
|
virtual | ~SynchronizedStream () |
|
virtual void | append (message::Level msgLevel, const std::string &message, const std::string &tagName, const std::string &fileName, int line, bool filter_duplicates) |
| Appends the given message to the stream. More...
|
|
virtual void | flush () |
| Dumps the messages to the console in rank-order. More...
|
|
void | setFormatString (const std::string &format) |
| Sets the format string. More...
|
|
virtual void | push () |
| Pushes messages incrementally up the log stream. NO-OP by default. More...
|
|
|
std::string | getFormatedMessage (const std::string &msgLevel, const std::string &message, const std::string &tagName, const std::string &rank, const std::string &fileName, int line) |
| Returns the formatted message as a single string. More...
|
|
std::string | getTimeStamp () |
| Returns a time-stamp. More...
|
|
A concrete instance of LogStream that dumps messages to a C++ std::ostream object.
- Note
- The intent of this class is to illustrate how to using the Logging facility within an MPI distributed environment and provide a utility that could be useful for debugging problems at small scales.
- Warning
- Do not use this for large-scale production runs.
-
The intent of this class is to be used primarily with std::cout, std::cerr, etc. It is suggested that applications do not use this class with an std::ofstream object.
◆ SynchronizedStream() [1/2]
axom::slic::SynchronizedStream::SynchronizedStream |
( |
std::ostream * |
stream, |
|
|
MPI_Comm |
comm |
|
) |
| |
◆ SynchronizedStream() [2/2]
axom::slic::SynchronizedStream::SynchronizedStream |
( |
std::ostream * |
stream, |
|
|
MPI_Comm |
comm, |
|
|
const std::string & |
format |
|
) |
| |
◆ ~SynchronizedStream()
virtual axom::slic::SynchronizedStream::~SynchronizedStream |
( |
| ) |
|
|
virtual |
◆ append()
virtual void axom::slic::SynchronizedStream::append |
( |
message::Level |
msgLevel, |
|
|
const std::string & |
message, |
|
|
const std::string & |
tagName, |
|
|
const std::string & |
fileName, |
|
|
int |
line, |
|
|
bool |
filter_duplicates |
|
) |
| |
|
virtual |
Appends the given message to the stream.
- Parameters
-
[in] | msgLevel | the level of the message. |
[in] | message | the user-supplied message. |
[in] | tagName | user-supplied tag to associate with the given message. |
[in] | fileName | the file where this message is appended |
[in] | line | the line within the file at which the message is appended. |
[in] | filter_duplicates | optional parameter that indicates whether duplicate messages resulting from running in parallel will be filtered out. |
- Note
- This method doesn't put anything to the console. Instead the messages are cached locally to each ranks and are dumped to the console in rank order when flush is called.
Implements axom::slic::LogStream.
◆ flush()
virtual void axom::slic::SynchronizedStream::flush |
( |
| ) |
|
|
virtual |
◆ setFormatString()
void axom::slic::LogStream::setFormatString |
( |
const std::string & |
format | ) |
|
|
inlineinherited |
Sets the format string.
- Parameters
-
- Note
- The following keywords in the format string are replaced:
-
<LEVEL> with the message type, e.g, ERROR, FATAL, etc.
-
<MESSAGE> with the user-supplied message
-
<TAG> user-supplied tag
-
<FILE> with the filename
-
<LINE> with the line number
-
<LINE> with the MPI rank
-
<TIMESTAMP> date/time the message is logged
An example illustrating how an application can setup the format string is shown below:
std::string format =
std::string( "***********************************\n" )+
std::string( "* <TIMESTAMP>\n\n" ) +
std::string( "* LEVEL=<LEVEL>\n" ) +
std::string( "* MESSAGE=<MESSAGE>\n" ) +
std::string( "* FILE=<FILE>\n" ) +
std::string( "* LINE=<LINE>\n" ) +
std::string( "* RANK=<RANK>\n" ) +
std::string( "***********************************\n" );
References axom::slic::LogStream::append().
◆ push()
virtual void axom::slic::LogStream::push |
( |
| ) |
|
|
inlinevirtualinherited |
◆ getFormatedMessage()
std::string axom::slic::LogStream::getFormatedMessage |
( |
const std::string & |
msgLevel, |
|
|
const std::string & |
message, |
|
|
const std::string & |
tagName, |
|
|
const std::string & |
rank, |
|
|
const std::string & |
fileName, |
|
|
int |
line |
|
) |
| |
|
protectedinherited |
Returns the formatted message as a single string.
- Parameters
-
[in] | msgLevel | the level of the given message. |
[in] | message | the user-supplied message. |
[in] | tagName | user-supplied tag, may be MSG_IGNORE_TAG |
[in] | fileName | filename where this message is logged, may be MSG_IGNORE_FILE to ignore this field. |
[in] | line | the line number within the file where the message is logged. Likewise, may be set to MSG_IGNORE_LINE to ignore this field. |
- Returns
- str the formatted message string.
- Postcondition
- str != "".
Referenced by axom::slic::LogStream::push().
◆ getTimeStamp()
std::string axom::slic::LogStream::getTimeStamp |
( |
| ) |
|
|
protectedinherited |
The documentation for this class was generated from the following file:
- /home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/v0.6.0/src/axom/slic/streams/SynchronizedStream.hpp