oracular (3) logbuf.3bobcat.gz

Provided by: libbobcat-dev_6.06.01-1_amd64 bug

NAME

       FBB::LogBuf -  std::streambuf handling log messages

SYNOPSIS

       #include <bobcat/logbuf>
       Linking option: -lbobcat

DESCRIPTION

       FBB::LogBuf  is  a  class  derived  from  std::streambuf  handling  log  messages.  The stream to log to,
       timestamps and log-levels can be configured both at construction time and beyond. The FBB::LogBuf may  be
       used to initialize a std::ostream.

NAMESPACE

       FBB
       All  constructors,  members,  operators  and manipulators, mentioned in this man-page, are defined in the
       namespace FBB.

INHERITS FROM

       std::streambuf

ENUMERATIONS

       The enumeration TimeStamps is defined in the namespace FBB  to  be  used  when  initializing  FBB::LogBuf
       objects. 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 Active is used to distinguish between suspending message insertion when a message’s level
       does not exceed a minimum level and suspending all message insertions (e.g.,  when  suspending  inserting
       messages into FBB::Log objects after calling their off member):

       o      OFF:
              All insertions into the LogBuf object are suspended;

       o      NOT_ACTIVE:
              Insertions  of  messages  into the LogBuf object are suspended if their levels are less than the a
              specified minimum (as set by, e.g., Log::setLevel).

       o      ACTIVE:
              Messages are inserted

CONSTRUCTORS

       o      LogBuf(TimeStamps timestamps = TIMESTAMPS, bool active = true, char const *delim = " "):
              This constructor constructs an FBB::LogBuf object writing its log-messages to  std::cerr.  If  the
              active parameter is initialized to false no messages will be logged until the buffer’s activity is
              switched on (see setActive() 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. When
              stamps == FBB::NOTIMESTAMPS delim is ignored. A time stamp 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;

       o      LogBuf(std::ostream &stream, TimeStamps timestamps = TIMESTAMPS, bool active =  true,  char  const
              *delim = " "):
              This  constructor  constructs an FBB::LogBuf object writing its log-messages to the stream used to
              initialize its stream parameter. If the active parameter is initialized to false no messages  will
              be  logged until the buffer’s activity is switched on (see setActive() 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.  When stamps == FBB::NOTIMESTAMPS delim is ignored. A time stamp
              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.

       Copy and move constructors (and assignment operators) are not available.

PUBLIC MEMBER FUNCTIONS

       All members of std::streambuf are available, as FBB::LogBuf inherits from this class.

       o      bool active() const:
              Returns true if log-messages are currently processed;

       o      bool empty() const:
              Returns true if the object’s buffer is currently empty (initially or after a newline character has
              been inserted);

       o      void setStream(std::ostream &stream):
              This member may be used to switch the stream to log to. It is the responsibility of the programmer
              to ensure that the external stream remains available for as long as log-messages are inserted into
              it;

       o      void settimestamp(FBB::TimeStamps timestamps, 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 time stamp 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;

       o      void setActive(bool active):
              Unless  the  current object’s Active state is OFF this member can be used to (de)activate logging.
              The argument true activates logging, the argument false deactivates  it.  If  the  current  Active
              status  is  OFF  then  this  member  does  not change the object’s activity status. This member is
              normally called by FBB::Log::level members;

       o      void setActive(Active active):
              The member function (de)activates logging. The argument ACTIVE activates logging, the argument OFF
              completely  suppresses  logging,  the  argument  NOT_ACTIVE  also  suppresses  logging,  but  here
              setActive(true) can also be used reactivate logging;

       o      void setEmpty(bool empty):
              This member may be called to ensure that a timestamp is inserted before the next insertion. It  is
              called  as  setEmpty(true)  when  a  newline  character  (\n)  is  inserted, ensuring that another
              timestamp is prepended before the next insertion.

EXAMPLE

       #include <iostream>
       #include <iomanip>

       #include <bobcat/log>
       #include <bobcat/level>

       using namespace std;
       using namespace FBB;

       int main()
       {
           LogBuf buffer(cout, FBB::TIMESTAMPS);
           ostream log(&buffer);

           log << "This message is written to cout" << nl <<
                  setw(16) << ’ ’ << "occupying multiple lines\n";

           buffer.setActive(false);

           log << "one line\n";
           log << "more lines ";
           log << fnl;
           log << "another\n";

           buffer.setActive(true);
           log << "and active again\n";
           log << "another log msg\n";
       }

FILES

       bobcat/logbuf - defines the class interface

SEE ALSO

       bobcat(7), log(3bobcat)

BUGS

       None Reported.

BOBCAT PROJECT FILES

       o      https://fbb-git.gitlab.io/bobcat/: gitlab project page;

       o      bobcat_6.06.01-x.dsc: detached signature;

       o      bobcat_6.06.01-x.tar.gz: source archive;

       o      bobcat_6.06.01-x_i386.changes: change log;

       o      libbobcat1_6.06.01-x_*.deb: debian package containing the libraries;

       o      libbobcat1-dev_6.06.01-x_*.deb: debian package containing the libraries, headers and manual pages;

BOBCAT

       Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.

       This is free software, distributed under the terms of the GNU General Public License (GPL).

AUTHOR

       Frank B. Brokken (f.b.brokken@rug.nl).