AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
axom::slic::GenericOutputStream Class Reference

Concrete instance of LogStream, which implements functionality for logging messages to a C++ ostream object, e.g., std::cout, std::cerr, a std::ofstream, std::ostringstream, etc. More...

#include </home/docs/checkouts/readthedocs.org/user_builds/axom/checkouts/latest/src/axom/slic/streams/GenericOutputStream.hpp>

Inheritance diagram for axom::slic::GenericOutputStream:

Public Member Functions

 GenericOutputStream (std::ostream *os)
 Constructs a GenericOutpuStream instance with the given stream. More...
 
 GenericOutputStream (const std::string &stream)
 Constructs a GenericOutputStream instance specified by the given string. The string input determines the stream as follows: More...
 
 GenericOutputStream (std::ostream *os, const std::string &format)
 Constructs a GenericOutputStream instance with the given stream and message formatting. More...
 
 GenericOutputStream (const std::string &stream, const std::string &format)
 Constructs a GenericOutputStream instance specified by the given string and message formatting. The string input determines the stream as follows: More...
 
virtual ~GenericOutputStream ()
 Destructor. More...
 
virtual void append (message::Level msgLevel, const std::string &message, const std::string &tagName, const std::string &fileName, int line, bool filter_duplicates, bool tag_stream_only)
 
virtual void outputLocal ()
 Outputs the log stream to the console. More...
 
virtual void flush ()
 Flushes the log stream. 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...
 

Protected Member Functions

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...
 

Detailed Description

Concrete instance of LogStream, which implements functionality for logging messages to a C++ ostream object, e.g., std::cout, std::cerr, a std::ofstream, std::ostringstream, etc.

See also
LogStream Logger

Constructor & Destructor Documentation

◆ GenericOutputStream() [1/4]

axom::slic::GenericOutputStream::GenericOutputStream ( std::ostream *  os)

Constructs a GenericOutpuStream instance with the given stream.

Parameters
[in]ospointer to a user-supplied ostream instance.
Precondition
os != NULL

◆ GenericOutputStream() [2/4]

axom::slic::GenericOutputStream::GenericOutputStream ( const std::string &  stream)

Constructs a GenericOutputStream instance specified by the given string. The string input determines the stream as follows:

  • "cout" makes std::cout the output stream
  • "cerr" makes std::cerr the output stream
  • Any other input will construct a std::ofstream associated with input
    Parameters
    [in]streamthe string to control type of stream created

◆ GenericOutputStream() [3/4]

axom::slic::GenericOutputStream::GenericOutputStream ( std::ostream *  os,
const std::string &  format 
)

Constructs a GenericOutputStream instance with the given stream and message formatting.

Parameters
[in]ospointer to a user-supplied ostream instance.
[in]formatthe format string.
See also
LogStream::setFormatString for the format string.

◆ GenericOutputStream() [4/4]

axom::slic::GenericOutputStream::GenericOutputStream ( const std::string &  stream,
const std::string &  format 
)

Constructs a GenericOutputStream instance specified by the given string and message formatting. The string input determines the stream as follows:

  • "cout" makes std::cout the output stream
  • "cerr" makes std::cerr the output stream
  • Any other input will construct a std::ofstream associated with input
    Parameters
    [in]streamthe string to control type of stream created
    [in]formatthe format string.
    See also
    LogStream::setFormatString for the format string.

◆ ~GenericOutputStream()

virtual axom::slic::GenericOutputStream::~GenericOutputStream ( )
virtual

Destructor.

Member Function Documentation

◆ append()

virtual void axom::slic::GenericOutputStream::append ( message::Level  msgLevel,
const std::string &  message,
const std::string &  tagName,
const std::string &  fileName,
int  line,
bool  filter_duplicates,
bool  tag_stream_only 
)
virtual

◆ outputLocal()

virtual void axom::slic::GenericOutputStream::outputLocal ( )
virtual

Outputs the log stream to the console.

Reimplemented from axom::slic::LogStream.

◆ flush()

virtual void axom::slic::GenericOutputStream::flush ( )
virtual

Flushes the log stream.

Reimplemented from axom::slic::LogStream.

◆ setFormatString()

void axom::slic::LogStream::setFormatString ( const std::string &  format)
inlineinherited

Sets the format string.

Parameters
formata format string
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" );

◆ push()

virtual void axom::slic::LogStream::push ( )
inlinevirtualinherited

Pushes messages incrementally up the log stream. NO-OP by default.

Note
The intent of this method is to be overridden by concrete implementations that need to be incrementally advanced. This is primarily useful for applications running in a distributed MPI environment, where the push is a collective operation intended for a incrementally advancing messages through the log stream.

Reimplemented in axom::slic::LumberjackStream.

◆ 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]msgLevelthe level of the given message.
[in]messagethe user-supplied message.
[in]tagNameuser-supplied tag, may be MSG_IGNORE_TAG
[in]fileNamefilename where this message is logged, may be MSG_IGNORE_FILE to ignore this field.
[in]linethe 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 != "".

◆ getTimeStamp()

std::string axom::slic::LogStream::getTimeStamp ( )
protectedinherited

Returns a time-stamp.

Returns
str a textual representation of the current time.

The documentation for this class was generated from the following file: