Distributed application logging

Steve steve.e.123@REDACTED
Wed Dec 23 17:48:02 CET 2009

I'm hoping someone might shed some light on the best/easiest way to do 
distributed application event logging.

In my app I have master node, two failover master nodes, and then a set 
of nodes that are coordinated by the master node and communicate with 
the master node via global fully qualified names. Each node will run its 
own application instance, vm and hardware.

My goal is to log all standard sasl events which are generated on the 
local nodes (alarms, errors, progress and supervisor reports) to the 
central master node.

The way I currently do this is to 1) register a global event manager on 
the central node and 2) send local sasl events to this global manager. I 
have a log_mf_h handler on the central node which I use to manage the 
global log. This code exists as its own application alongside my main 
application so I can get progress reports about the main application 
starting, etc.

This all works pretty well. The only "problem" is that log_mf_h and rb 
don't say much about the node that generated the event. Pids are of 
course there, and I know I can get node info from a pid via node/1. I 
can probably send my own reports to log_mf_h or create my own round 
robin log that contains reports with info about the nodes. But I'd 
rather get the most out of what's already there in erlang if I can being 
a big fan of not reinventing the wheel.

So... I guess my question is: am I on the right track more or less, or 
have I missed something in the docs/libs or my app design that would 
help me?

Thanks in advance.


More information about the erlang-questions mailing list