A
system and method for enabling multiple processes to efficiently log events is described. A
client executable module that needs to log an event may interface with a module or component referred to as a “
client-side
logging component”, passing various types of information regarding the event, such as an associated
event level, one or more event associated event categories, an informational message, etc. The
client-side
logging component may maintain event
logging criteria specifying which types of events should be logged. If the event should be logged, the client-side logging component may
queue the event information and return
execution control the client module. The event information may then be asynchronously retrieved from the
event queue and sent to a
server-side logging component. The
server-side logging component may persistently log the event information in any of various ways, e.g., by storing it in a file, a
database, etc. Processes running on multiple computers may call the
server-side logging component to log events, via a client-side logging component instance associated with the process. A logging administration tool may be utilized in order to set event logging criteria. In response to being configured with new event logging criteria information, the server-side logging component may automatically propagate the logging criteria information to each of the client-side logging components. The client-side logging components may then being using the new logging criteria, dynamically changing the filtering of events that are sent to the server-side logging component.