Re: Mod_log_spread on Windows?

Theo Schlossnagle <[email protected]> Thu, 4 Dec 2003 17:28:30 -0500
Newsgroups gmane.comp.apache.mod-log-spread.user
Message-ID <[email protected]>
On Dec 4, 2003, at 5:11 PM, Gary Penn wrote:
> I first heard about mod_log_spread at ApacheCon '03 a few weeks ago and
> it sounded fantastic.  Problem is we have a 100% Windows environment.
> Running Apache 2.0.47 and it's great.  But how to run spreadlogd?  How
> to compile mod_log_spread if I'm using binaries?

You'll need to compile things regardless.  But there is no reason that 
m_l_s wouldn't compile clean under Windows.  It doesn't do anything 
clever and uses the spread libraries which are available on the win32 
platform (see www.spread.org).

You will also need to get Spread running in your environment (Spread 
also supports Windows).

How to log spreadlogd?  That is much more complicated question.  
However, spreadlogd is a fairly simple program and can be rewritten in 
a scripting language in most cases (with perl or python).  So, you may 
be able to "build your own" with almost zero effort.

> We currently feed our logs via a nightly batch file to our WebTrends
> server which then does it's magic with them.  It's Windows-based as
> well.  All systems are W2K or W2K3.
>
> With only 2 webservers, why do I need mod_log_spread?  Well, besides it
> being cool technology, we ran into problems where the rotatelogs.exe
> that is called for the 15 virtual hosts each night at midnight would 
> not
> "kill" itself once it was done.  After a few days we have 70+
> rotatelogs.exe's in the process manager and the webservers would die.
> :( :(  I attempted to resolve the issue using cronolog instead and got
> the same behaviour.  Very odd.
>
> Suggestions for a Windows user?  Please do not send "Windows sucks use
> Linux" messages.  They are not helpful to me, the community, the open
> source movement or your libido.

Funny... a tad defensive?

all of the listed technologies (except spreadlogd) have no dependence 
on any unix-isms whatsoever.  While spreadlogd super is fast, efficient 
by utilizing several unix-specific features and has several cool 
vhosting features, the concept is ultra-simple:

while(1):
   connect to spread.
   join group for each virtual host
   while(read from spread is successful):
     write to that group's logfile
   /* error */
   disconnect from spread

Honestly, the python code doesn't look all that different from the 
above ;-)

Good luck and let us know how you fare.

// Theo Schlossnagle
// Principal Engineer -- http://www.omniti.com/~jesus/
// Postal Engine -- http://www.postalengine.com/
// Ecelerity: fastest MTA on earth