--------------------- PatchSet 4548 Date: 2007/05/15 12:22:45 Author: adri Branch: squid3_logdaemon Tag: (none) Log: Start fleshing out the replacement modular logfile code, version 1. I won't bother trying to fix the multi-copying thats going on here - Varnish has a nice circular buffer for logging which is implemented in shared memory - but I'll do that later. Members: src/LogFile.cc:1.1->1.1.2.1 src/LogFile.h:1.1->1.1.2.1 src/LogFileBlocking.cc:1.1->1.1.2.1 src/LogFileBlocking.h:1.1->1.1.2.1 src/LogFileSyslog.cc:1.1->1.1.2.1 src/LogFileSyslog.h:1.1->1.1.2.1 src/Makefile.am:1.119->1.119.4.1 --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFile.cc Thu May 17 00:23:57 2007 @@ -0,0 +1,83 @@ +/* + * $Id: LogFile.cc,v 1.1.2.1 2007/05/15 12:22:45 adri Exp $ + * + * DEBUG: section 50 Log file handling + * AUTHOR: Adrian Chadd + * + * $INCLUDE GPLv2 + * + * For Auditing Purposes: please include authors names' when any + * patches to this file are made. + */ + +#include "squid.h" +#include "authenticate.h" +#include "fde.h" + +#include "LogFile.h" + +/* ********** */ +/* New stuff; should be relocated into Core later */ + +namespace Core { + +LogFile::LogFile(void) +{ + fatal("LogFile::LogFile: called, but I should be overridden!\n"); +} + +LogFile::~LogFile(void) +{ + fatal("LogFile::~LogFile: called, but I should be overridden!\n"); +} + +bool +LogFile::Open(const char *path, int buf_sz, bool fatal_flag) +{ + fatal("LogFile::Open: called, but I should be overridden!\n"); + return false; +} + +void +LogFile::Close(void) +{ + fatal("LogFile::Close: called, but I should be overridden!\n"); +} + +void +LogFile::Rotate(void) +{ + fatal("LogFile::Rotate: called, but I should be overridden!\n"); +} + +void +LogFile::Flush(void) +{ + fatal("LogFile::Flush: called, but I should be overridden!\n"); +} + +void +LogFile::BeginLine(void) +{ + fatal("LogFile::BeginLine: called, but I should be overridden!\n"); +} + +void +LogFile::AppendLine(const char *buf) +{ + fatal("LogFile::AppendLine: called, but I should be overridden!\n"); +} + +void +LogFile::PrintLine(const char *fmt, ...) +{ + fatal("LogFile::PrintLine: called, but I should be overridden!\n"); +} + +void +LogFile::EndLine(void) +{ + fatal("LogFile::EndLine: called, but I should be overridden!\n"); +} + +} --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFile.h Thu May 17 00:23:57 2007 @@ -0,0 +1,53 @@ +#ifndef __LOGFILE_H__ +#define __LOGFILE_H__ + +/* + * Logfile code - Adrian Chadd + * + * $INCLUDE GPLv2 + */ + +namespace Core { + +/* + * This class is designed to be built on; + * don't use it by itself! + */ +class LogFile { + public: + + LogFile(void); + virtual ~LogFile(); + + /* open */ + virtual bool Open(const char *path, int buf_sz, bool fatal_flag); + + /* close */ + virtual void Close(); + + /* rotate */ + virtual void Rotate(); + + /* flush */ + virtual void Flush(); + + /* begin line */ + virtual void BeginLine(); + /* write to a line */ + virtual void AppendLine(const char *buf); + /* printf */ + virtual void PrintLine(const char *fmt, ...); + /* end of the current line */ + virtual void EndLine(); + + /* stream? */ + + private: + String logpath; + +}; + +}; + + +#endif --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFileBlocking.cc Thu May 17 00:23:57 2007 @@ -0,0 +1,84 @@ +/* + * $Id: LogFileBlocking.cc,v 1.1.2.1 2007/05/15 12:22:52 adri Exp $ + * + * DEBUG: section 50 Log file handling + * AUTHOR: Adrian Chadd + * + * $INCLUDE GPLv2 + * + * For Auditing Purposes: please include authors names' when any + * patches to this file are made. + */ + +#include "squid.h" +#include "authenticate.h" +#include "fde.h" + +#include "LogFile.h" +#include "LogFileBlocking.h" + +/* ********** */ +/* New stuff; should be relocated into Core later */ + +namespace Core { + +LogFileBlocking::LogFileBlocking(void) +{ + fatal("LogFileBlocking::LogFileBlocking: called, but I should be overridden!\n"); +} + +LogFileBlocking::~LogFileBlocking(void) +{ + fatal("LogFileBlocking::~LogFileBlocking: called, but I should be overridden!\n"); +} + +bool +LogFileBlocking::Open(const char *path, int buf_sz, bool fatal_flag) +{ + fatal("LogFileBlocking::Open: called, but I should be overridden!\n"); + return false; +} + +void +LogFileBlocking::Close(void) +{ + fatal("LogFileBlocking::Close: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::Rotate(void) +{ + fatal("LogFileBlocking::Rotate: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::Flush(void) +{ + fatal("LogFileBlocking::Flush: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::BeginLine(void) +{ + fatal("LogFileBlocking::BeginLine: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::AppendLine(const char *buf) +{ + fatal("LogFileBlocking::AppendLine: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::PrintLine(const char *fmt, ...) +{ + fatal("LogFileBlocking::PrintLine: called, but I should be overridden!\n"); +} + +void +LogFileBlocking::EndLine(void) +{ + fatal("LogFileBlocking::EndLine: called, but I should be overridden!\n"); +} + +} --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFileBlocking.h Thu May 17 00:23:57 2007 @@ -0,0 +1,53 @@ +#ifndef __LOGFILEBLOCKING_H__ +#define __LOGFILEBLOCKING_H__ + +/* + * Logfile code - Adrian Chadd + * + * $INCLUDE GPLv2 + */ + +namespace Core { + +/* + * This class is designed to be built on; + * don't use it by itself! + */ +class LogFileBlocking : public LogFile { + public: + + LogFileBlocking(void); + virtual ~LogFileBlocking(); + + /* open */ + virtual bool Open(const char *path, int buf_sz, bool fatal_flag); + + /* close */ + virtual void Close(); + + /* rotate */ + virtual void Rotate(); + + /* flush */ + virtual void Flush(); + + /* begin line */ + virtual void BeginLine(); + /* write to a line */ + virtual void AppendLine(const char *buf); + /* printf */ + virtual void PrintLine(const char *fmt, ...); + /* end of the current line */ + virtual void EndLine(); + + /* stream? */ + + private: + String logpath; + +}; + +}; + + +#endif --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFileSyslog.cc Thu May 17 00:23:57 2007 @@ -0,0 +1,84 @@ +/* + * $Id: LogFileSyslog.cc,v 1.1.2.1 2007/05/15 12:22:53 adri Exp $ + * + * DEBUG: section 50 Log file handling + * AUTHOR: Adrian Chadd + * + * $INCLUDE GPLv2 + * + * For Auditing Purposes: please include authors names' when any + * patches to this file are made. + */ + +#include "squid.h" +#include "authenticate.h" +#include "fde.h" + +#include "LogFile.h" +#include "LogFileSyslog.h" + +/* ********** */ +/* New stuff; should be relocated into Core later */ + +namespace Core { + +LogFileSyslog::LogFileSyslog(void) +{ + fatal("LogFileSyslog::LogFileSyslog: called, but I should be overridden!\n"); +} + +LogFileSyslog::~LogFileSyslog(void) +{ + fatal("LogFileSyslog::~LogFileSyslog: called, but I should be overridden!\n"); +} + +bool +LogFileSyslog::Open(const char *path, int buf_sz, bool fatal_flag) +{ + fatal("LogFileSyslog::Open: called, but I should be overridden!\n"); + return false; +} + +void +LogFileSyslog::Close(void) +{ + fatal("LogFileSyslog::Close: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::Rotate(void) +{ + fatal("LogFileSyslog::Rotate: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::Flush(void) +{ + fatal("LogFileSyslog::Flush: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::BeginLine(void) +{ + fatal("LogFileSyslog::BeginLine: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::AppendLine(const char *buf) +{ + fatal("LogFileSyslog::AppendLine: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::PrintLine(const char *fmt, ...) +{ + fatal("LogFileSyslog::PrintLine: called, but I should be overridden!\n"); +} + +void +LogFileSyslog::EndLine(void) +{ + fatal("LogFileSyslog::EndLine: called, but I should be overridden!\n"); +} + +} --- /dev/null Thu May 17 00:23:57 2007 +++ squid3/src/LogFileSyslog.h Thu May 17 00:23:57 2007 @@ -0,0 +1,53 @@ +#ifndef __LOGFILESYSLOG_H__ +#define __LOGFILESYSLOG_H__ + +/* + * Logfile code - Adrian Chadd + * + * $INCLUDE GPLv2 + */ + +namespace Core { + +/* + * This class is designed to be built on; + * don't use it by itself! + */ +class LogFileSyslog : public LogFile { + public: + + LogFileSyslog(void); + virtual ~LogFileSyslog(); + + /* open */ + virtual bool Open(const char *path, int buf_sz, bool fatal_flag); + + /* close */ + virtual void Close(); + + /* rotate */ + virtual void Rotate(); + + /* flush */ + virtual void Flush(); + + /* begin line */ + virtual void BeginLine(); + /* write to a line */ + virtual void AppendLine(const char *buf); + /* printf */ + virtual void PrintLine(const char *fmt, ...); + /* end of the current line */ + virtual void EndLine(); + + /* stream? */ + + private: + String logpath; + +}; + +}; + + +#endif Index: squid3/src/Makefile.am =================================================================== RCS file: /cvsroot/squid-sf//squid3/src/Makefile.am,v retrieving revision 1.119 retrieving revision 1.119.4.1 diff -u -r1.119 -r1.119.4.1 --- squid3/src/Makefile.am 8 May 2007 16:51:26 -0000 1.119 +++ squid3/src/Makefile.am 15 May 2007 12:22:55 -0000 1.119.4.1 @@ -1,7 +1,7 @@ # # Makefile for the Squid Object Cache server # -# $Id: Makefile.am,v 1.119 2007/05/08 16:51:26 squidadm Exp $ +# $Id: Makefile.am,v 1.119.4.1 2007/05/15 12:22:55 adri Exp $ # # Uncomment and customize the following to suit your needs: # @@ -519,6 +519,9 @@ $(LEAKFINDERSOURCE) \ list.cc \ logfile.cc \ + LogFile.cc \ + LogFileSyslog.cc \ + LogFileBlocking.cc \ main.cc \ mem.cc \ mem_node.cc \