An Event Handler which Logs Events to Disk

The log_mf_h is a gen_event handler module which can be installed in any gen_event process. It logs onto disk all events which are sent to an event manager. Each event is written as a binary which makes the logging very fast. However, a tool such as the Report Browser (rb) must be used in order to read the files. The events are written to multiple files. When all files have been used, the first one is re-used and overwritten. The directory location, the number of files, and the size of each file are configurable. The directory will include one file called index, and report files 1, 2, .....



Term to be sent to gen_event:add_handler/3.


init(Dir, MaxBytes, MaxFiles) -> Args

init(Dir, MaxBytes, MaxFiles, Pred) -> Args

  • Dir = file:filename()
  • MaxBytes = integer() >= 0
  • MaxFiles = 1..255
  • Pred = fun((Event :: term()) -> boolean())
  • Args = args()

Initiates the event handler. This function returns Args, which should be used in a call to gen_event:add_handler(EventMgr, log_mf_h, Args).

Dir specifies which directory to use for the log files. MaxBytes specifies the size of each individual file. MaxFiles specifies how many files are used. Pred is a predicate function used to filter the events. If no predicate function is specified, all events are logged.

See Also

gen_event(3), rb(3)