Distributed application logging
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
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
Thanks in advance.
More information about the erlang-questions