/usr/share/doc/libbobcat3/man/logbuffer.3.html is in libbobcat-dev 3.23.01-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | <html><head>
<title>FBB::LogBuffer</title>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1>FBB::LogBuffer</h1>
<h2>libbobcat-dev_3.23.01-x.tar.gz</h2>
<h2>2005-2014</h2>
<html><head>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1></h1>
<html><head>
<title>FBB::LogBuffer(3bobcat)</title>
<link rev="made" href="mailto:Frank B. Brokken: f.b.brokken@rug.nl">
</head>
<body text="#27408B" bgcolor="#FFFAF0">
<hr>
<h1>FBB::LogBuffer(3bobcat)</h1>
<h2>libbobcat-dev_3.23.01-x.tar.gz log messages stream buffer</h2>
<h2>2005-2014</h2>
<p>
<h2>NAME</h2>FBB::LogBuffer - <strong>std::streambuf</strong> handling log messages
<p>
<h2>SYNOPSIS</h2>
<strong>#include <bobcat/logbuffer></strong><br>
Linking option: <em>-lbobcat</em>
<p>
<h2>DESCRIPTION</h2>
<p>
<strong>FBB::LogBuffer</strong> is a class derived from <strong>std::streambuf</strong> handling log
messages. The stream to log to, timestamps and log-levels can be configured
both at construction time and beyond. The <strong>FBB::LogBuffer</strong> may be used to
initialize a <strong>std::ostream</strong>.
<p>
<h2>NAMESPACE</h2>
<strong>FBB</strong><br>
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace <strong>FBB</strong>.
<p>
<h2>INHERITS FROM</h2>
<strong>std::streambuf</strong>
<p>
<h2>ENUMERATION</h2>
The enumeration <strong>TimeStamps</strong> is defined in the namespace <strong>FBB</strong> to be
used when initializing <strong>FBB::LogBuffer</strong> objects. It has the following
values:
<ul>
<li> <strong>NOTIMESTAMPS</strong>:<br>
Log-messages will not have timestamps prepended to them.
<li> <strong>TIMESTAMPS</strong>:<br>
Log-messages will have timestamps prepended to them.
<li> <strong>UTCTIMESTAMPS</strong>:<br>
Log-messages will have timestamps showing the UTC time prepended to
them.
</ul>
<p>
<h2>CONSTRUCTORS</h2>
<ul>
<li> <strong>LogBuffer(TimeStamps timestamps = TIMESTAMPS,
bool active = true,
char const *delim = " ")</strong>:<br>
This constructor constructs an <strong>FBB::LogBuffer</strong> object writing its
log-messages to <strong>std::cerr</strong>. If the <strong>active</strong> parameter is initialized to
<strong>false</strong> no messages will be logged until the buffer's activity is switched
on (see <strong>setActive()</strong> below). The parameter <strong>delim</strong> is inserted
immediately beyond the time stamp. If a delimiter is inappropriate, an empty
string or a 0-pointer may be specified. When <strong>stamps == FBB::NOTIMESTAMPS
delim</strong> 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 <em>/var/log</em> files. E.g., <em>Aug 5 13:52:23</em>.
<li> <strong>LogBuffer(std::ostream &stream,
TimeStamps timestamps = TIMESTAMPS,
bool active = true,
char const *delim = " ")</strong>:<br>
This constructor constructs an <strong>FBB::LogBuffer</strong> object writing its
log-messages to the stream used to initialize its <strong>stream</strong> parameter. If the
<strong>active</strong> parameter is initialized to <strong>false</strong> no messages will be logged
until the buffer's activity is switched on (see <strong>setActive()</strong> below). The
parameter <strong>delim</strong> is inserted immediately beyond the time stamp. If a
delimiter is inappropriate, an empty string or a 0-pointer may be
specified. When <strong>stamps == FBB::NOTIMESTAMPS delim</strong> 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 <em>/var/log</em> files. E.g.,
<em>Aug 5 13:52:23</em>.
</ul>
<p>
Copy and move constructors are not available.
<p>
<h2>MEMBER FUNCTIONS</h2>
All members of <strong>std::streambuf</strong> are available, as <strong>FBB::LogBuffer</strong>
inherits from this class.
<ul>
<li> <strong>int overflow(int c)</strong>:<br>
This member <em>overrides</em> the <strong>std::streambuf</strong> member. It is
called by <em>std::ostream</em> objects using <strong>OFdStreambuf</strong>. It calls
<em>sync()</em>, an then it puts the next available character into the buffer. It
returns the inserted character.
<li> <strong>void setActive(bool active)</strong>:<br>
The member function (de)activates logging. The argument <strong>true</strong>
activates logging, the argument <strong>false</strong> deactivates it.
<li> <strong>void setStream(std::ostream &stream)</strong>:<br>
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.
<li> <strong>void settimestamp(FBB::TimeStamps timestamps,
char const *delim = " ")</strong>:<br>
The member function (de)activates time stamp prepending. Use the value
<strong>FBB::TIMESTAMPS</strong> to prepend time stamps, <strong>FBB::NOTIMESTAMPS</strong> 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 <em>/var/log</em> files. E.g., <em>Aug 5 13:52:23</em>. The parameter <strong>delim</strong> is
inserted immediately beyond the time stamp. If a delimiter is inappropriate,
an empty string or a 0-pointer may be specified. When <strong>stamps ==
FBB::NOTIMESTAMPS delim</strong> is ignored.
<li> <strong>void setEmpty(bool empty)</strong>:<br>
This member may be called to ensure that a timestamp is inserted
before the next insertion. It is called as <strong>setEmpty(true)</strong> when a newline
character (<em>\n</em>) is inserted, ensuring that another timestamp is prepended
before the next insertion.
<li> <strong>int sync()</strong>:<br>
This member <em>overrides</em> the <strong>std::streambuf</strong> member. It writes
the buffer to the device associated with the file descriptor, and returns 0.
</ul>
<p>
<h2>PROTECTED MEMBER FUNCTION</h2>
<p>
The member listed in this section implements the tasks of the comparably
named virtual function in the class's private interface. This separates the
redefinable interface from the user-interface. The class <strong>LogBuffer</strong>
can, in accordance with Liskov's Substitution Principle, be used as a
<em>std:streambuf</em>; but it also offers a facility for classes deriving from
<strong>LogBuffer</strong>. This facility is listed here.
<ul>
<li> <strong>int pSync()</strong>:<br>
The contents of the <strong>LogBuffer</strong>'s internal buffer is flushed.
</ul>
<p>
<h2>EXAMPLE</h2>
<pre>
#include <iostream>
#include <iomanip>
#include <bobcat/log>
using namespace std;
using namespace FBB;
int main()
{
LogBuffer buffer(cout, FBB::TIMESTAMPS);
ostream log(&buffer);
log << "This message is written to cout" << nl <<
setw(16) << ' ' << "occupying multiple lines\n";
}
</pre>
<p>
<h2>FILES</h2>
<em>bobcat/logbuffer</em> - defines the class interface
<p>
<h2>SEE ALSO</h2>
<strong>bobcat</strong>(7), <strong>log</strong>(3bobcat)
<p>
<h2>BUGS</h2>
None Reported.
<p>
<h2>DISTRIBUTION FILES</h2>
<ul>
<li> <em>bobcat_3.23.01-x.dsc</em>: detached signature;
<li> <em>bobcat_3.23.01-x.tar.gz</em>: source archive;
<li> <em>bobcat_3.23.01-x_i386.changes</em>: change log;
<li> <em>libbobcat1_3.23.01-x_*.deb</em>: debian package holding the
libraries;
<li> <em>libbobcat1-dev_3.23.01-x_*.deb</em>: debian package holding the
libraries, headers and manual pages;
<li> <em>http://sourceforge.net/projects/bobcat</em>: public archive location;
</ul>
<p>
<h2>BOBCAT</h2>
Bobcat is an acronym of `Brokken's Own Base Classes And Templates'.
<p>
<h2>COPYRIGHT</h2>
This is free software, distributed under the terms of the
GNU General Public License (GPL).
<p>
<h2>AUTHOR</h2>
Frank B. Brokken (<strong>f.b.brokken@rug.nl</strong>).
<p>
|