Provided by: libbobcat-dev_4.08.02-2build1_amd64 

NAME
FBB::Log - std::ostream handling log messages
SYNOPSIS
#include <bobcat/log>
Linking option: -lbobcat
DESCRIPTION
The class FBB::Log is an std::ostream initialized with a FBB::LogBuffer. It is used to send log-messages
to the (r)syslog stream. Refer to the logbuffer(3bobcat) man-page for details about this process.
NAMESPACE
FBB
All constructors, members, operators and manipulators, mentioned in this man-page, are defined in the
namespace FBB.
INHERITS FROM
std::ostream
ENUMERATIONS
The enumeration TimeStamps is defined in the namespace FBB, primarily for initializing FBB::LogBuffer
objects. It is used with FBB::Log members as well. It has the following values:
o NOTIMESTAMPS:
Log-messages will not have timestamps prepended to them.
o TIMESTAMPS:
Log-messages will have timestamps prepended to them.
o UTCTIMESTAMPS:
Log-messages will have timestamps showing the UTC time prepended to them.
The enumeration LogManipulator is used to handle special or exceptional situations through manipulators.
It is defined in the namespace FBB and has the following two values:
o FATAL:
This value may be inserted into an FBB::Log object to throw an FBB::Exception exception (see
operator<< below);
o nl:
This value may be inserted into an FBB::Log object to terminate the current line. It will not
cause the next line to begin with a time stamp (if applicable) and the current message level
cannot be modified using a level(3bobcat) manipulator. It is used to allow a single log message to
occupy multiple textual lines.
o endl:
This is the standard ostream manipulator. When inserted into an FBB::Log object the current buffer
is flushed. Note that flushing does not happen immediately when a newline (\n) is inserted into
the log stream. Alternatively, std::flush may be inserted into the FBB::Log object to flush its
buffer.
CONSTRUCTORS
o Log():
The default constructor creates a FBB::Log object which isn’t yet associated with a stream to log
messages on. The member open (see below) may be used to define such a stream. By default, all
messages will have a time stamp prepended to them (see the description of the member setTimestamp
below), and a blank space is inserted as delimiter immediately beyond the time stamp. The member
open can be used to modify the default delimiter.
o Log(std::ostream &out, char const *delim = " "):
This constructor creates a FBB::Log object logging its messages to the provided std::ostream
object. By default, all messages will have a time stamp prepended to them (see the description of
the member setTimestamp below). The parameter delim is inserted immediately beyond the time
stamp. If a delimiter is inappropriate, an empty string or a 0-pointer may be specified.
o FBB::Log(std::string const &filename, std::ios::openmode mode = std::ios::out | std::ios::app,
char const *delim = " "):
This constructor creates a FBB::Log object logging its messages to the named file. If filename ==
"&1" the logmessages will be written to the standard output stream. If filename == "&2" the
logmessages will be written to the standard error stream. By default the file is created if not
existing, and all messages are appended to the stream. By default, all messages will have a time
stamp prepended to them (see the description of the member setTimestamp below). The parameter
delim is inserted immediately beyond the time stamp. If a delimiter is inappropriate, an empty
string or a 0-pointer may be specified. The copy constructor is not available.
MEMBER FUNCTIONS
All members of std::ostream are available, as FBB::Log inherits from this class.
o size_t level():
This member returns the currently set log level (i.e., the value set at the latest setLevel()
call). By default, the level is set to zero, meaning that all information is inserted into the log
stream.
o std::ostream &level(size_t useLevel):
This member defines a log-level. Messages will be inserted into the stream when useLevel is equal
to or exceeds the level set by setLevel. The maximum level which can be selected is
std::numeric_limits<size_t>::max(). If not even such messages should be inserted into the ostream,
then the stream should be deactivated, using off(), see below. The selected level remains active
until redefined. Alternatively, the FBB::level manipulator may be inserted into an (empty)
FBB::Log object (see level(3bobcat)).
o void off():
Prevents any log messages from being generated. It may be cancelled by setLevel (see below).
o void open(std::string const &filename, std::ios::openmode mode = std::ios::out | std::ios::app,
char const *delim = " "):
This member (re)associates an FBB::Log object with the named file. If filename == "&1" the
logmessages will be written to the standard output stream. If filename == "&2" the logmessages
will be written to the standard error stream. By default the file is created if not existing, and
all messages are appended to the stream. By default, all messages will have a time stamp
prepended to them (see the description of the member setTimestamp below). The parameter delim is
inserted immediately beyond the time stamp. If a delimiter is inappropriate, an empty string or a
0-pointer may be specified.
o void setLevel(size_t newLevel):
Redefines the internal message level. Messages having at least level newLevel will be written. If
the member is used without explicit argument, logging is suspended.
o void setTimestamp(FBB::TimeStamps stamp, char const *delim = " "):
The member function (de)activates time stamp prepending. Use the value FBB::TIMESTAMPS to prepend
time stamps, FBB::NOTIMESTAMPS suppresses time stamps. A timestamp consists of the month, the day
number of the month and the (local) time of the current message, as usually appearing in messages
in /var/log files. E.g., Aug 5 13:52:23. The parameter delim is inserted immediately beyond the
time stamp. If a delimiter is inappropriate, an empty string or a 0-pointer may be specified. When
stamps == FBB::NOTIMESTAMPS delim is ignored.
STATIC MEMBERS
o FBB::Log &initialize(std::string const &filename, std::ios::openmode mode = std::ios::out |
std::ios::app, char const *delim = " "):
Returns a reference to a static FBB::Log object. It may only be called once, or an FBB::Exception
exception is thrown. It associates a static FBB::Log object with the named file. If filename ==
"&1" the logmessages will be written to the standard output stream. If filename == "&2" the
logmessages will be written to the standard error stream. By default the file is created if not
existing, and all messages are appended to the stream. By default, all messages will have a time
stamp prepended to them (see the description of the member setTimestamp below). The parameter
delim is inserted immediately beyond the time stamp. If a delimiter is inappropriate, an empty
string or a 0-pointer may be specified.
o FBB::Log &instance():
Returns a reference to a static FBB::Log object, available after calling Log::initialize. If
called before Log::initialize() an FBB::Exception exception is thrown.
OVERLOADED OPERATOR
The following overloaded operator is defined outside of the FBB namespace. It may be used to insert an
FBB::LogManipulator into an FBB::Log object. If the overloaded operator is used in combination with
another type of object it performs no actions.
o std::ostream &::operator<<(std::ostream &str, FBB::LogManipulator):
When inserting FBB::FATAL an FBB::Exception exception is thrown; when inserting FBB::nl the line
is terminated, but next insertions will not start with a time stamp (if applicable).
EXAMPLE
#include <iostream>
#include <iomanip>
#include <bobcat/log>
using namespace std;
using namespace FBB;
int main()
{
// Log &log = Log::initialize("&1");
Log log;
log.open("/tmp/out");
log << "This message is written to cout" << nl <<
setw(16) << ’ ’ << "occupying multiple lines\n";
log.off();
log << "This message is not shown\n";
log.setLevel(0);
log << "This message is shown again\n";
}
FILES
bobcat/log - defines the class interface
SEE ALSO
bobcat(7), exception(3bobcat), level(3bobcat), logbuffer(3bobcat)
BUGS
None reported
DISTRIBUTION FILES
o bobcat_4.08.02-x.dsc: detached signature;
o bobcat_4.08.02-x.tar.gz: source archive;
o bobcat_4.08.02-x_i386.changes: change log;
o libbobcat1_4.08.02-x_*.deb: debian package holding the libraries;
o libbobcat1-dev_4.08.02-x_*.deb: debian package holding the libraries, headers and manual pages;
o http://sourceforge.net/projects/bobcat: public archive location;
BOBCAT
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
COPYRIGHT
This is free software, distributed under the terms of the GNU General Public License (GPL).
AUTHOR
Frank B. Brokken (f.b.brokken@rug.nl).
libbobcat-dev_4.08.02-x.tar.gz 2005-2017 FBB::Log(3bobcat)