From dbc2d14e0727d8e2f4b8e805c433e50c8664d64d Mon Sep 17 00:00:00 2001 From: Fritz Elfert Date: Tue, 1 Aug 2000 22:35:28 +0000 Subject: Added API doc for logbuf. Test auto-generation of HTML API doc on project homepage. --- lib/log.cc | 1 + lib/log.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/log.cc b/lib/log.cc index 7932e84..79a6a35 100644 --- a/lib/log.cc +++ b/lib/log.cc @@ -15,6 +15,7 @@ int logbuf::overflow(int c) { *ptr = '\0'; syslog(level, buf); ptr = buf; + len = 0; return 0; } if ((len + 2) >= sizeof(buf)) diff --git a/lib/log.h b/lib/log.h index 740bced..7a6528d 100644 --- a/lib/log.h +++ b/lib/log.h @@ -7,14 +7,66 @@ #include #include +/** + * A streambuffer, logging via syslog + * + * logbuf can be used, if you want to use syslog for + * logging but don't want to change all your nice + * C++-style output statements in your code. + * + * Here is an example showing the usage of logbuf: + * + *
+ *	openlog("myDaemon", LOG_CONS|LOG_PID, LOG_DAEMON);
+ *	logbuf ebuf(LOG_ERR);
+ *	ostream lerr(&ebuf);
+ *
+ *	... some code ...
+ *
+ *	lerr << "Whoops, got an error" << endl;
+ * 
+ */ class logbuf : public streambuf { public: - logbuf(int); + + /** + * Constructs a new instance. + * + * @param level The log level for this instance. + * see syslog(3) for symbolic names to use. + */ + logbuf(int level); + + /** + * @internal Called by the associated + * ostream to write a character. + * Stores the character in a buffer + * and calls syslog(level, buffer) + * whenever a LF is seen. + */ int overflow(int c = EOF); + private: + + /** + * Pointer to next char in buffer. + */ char *ptr; + + /** + * Current length of buffer. + */ int len; + + /** + * The log level to use with syslog. + */ int level; + + /** + * The internal buffer for holding + * messages. + */ char buf[1024]; }; -- cgit v1.2.3