[erlang-questions] high-volume logging via a gen_server

Anthony Shipman <>
Tue Oct 5 11:23:41 CEST 2010


On Tue, 5 Oct 2010 06:42:17 am Mihai Balea wrote:
> On Oct 4, 2010, at 2:57 PM, Dan Kelley wrote:
> > So, what are good strategies to cope with a large incoming volume of
> > messages that all need to wind up in the same logfile?  Is there a more
> > efficient way to write to disk than the simple io:format() call than I'm
> > using above?  What's a good way to parallelize the logging over multiple
> > processes but keep all of the information in one file?
>

You can have a buffer process ahead of the logger. The buffer process just has 
to accept and store log requests. A separate write process can pull them from 
the buffer (using an async protocol). If the buffer gets too full then you 
can have various policies such as discard oldest, youngest, low priority 
messages etc.

-- 
Anthony Shipman                    Mamas don't let your babies 
                   grow up to be outsourced.


More information about the erlang-questions mailing list