scoper
Log metadata scoping Erlang library.
About
From Urban Dictionary:
Scoper - another word for spastic. Came into use when the Spastic's Society changed it's name to Scope.
You Scoper!
You're such a Scoper!
Scoooper!
Usage
-
Scope log metadata along the process call stack, wrapping functions in scoper
:scope/2,3. Scope name should be an atom, metadata is a map with atom keys. The types:-type key() :: atom(). -type value() :: any(). -type meta() :: #{key() => value()}. -type scope() :: key().
-
Add/remove scope metadata via scoper
:add_meta/1and scoper:remove_meta/1 -
Use lager or just process dictionary (by default) as metadata storage.
-
Implement your own storage as scoper_storage behaviour. Metadata storage is configured via application environment variable
storage, which should name the module implementingscoper_storagebehaviour. E.g.:{scoper, [ {storage, scoper_storage_lager} ]}. -
Enjoy tailored scoper_woody_event_handler:
%% woody client or server config event_handler => scoper_woody_event_handler,
Scope names for woody client and server are:
rpc.clientandrpc.server.
Note, if using
lagermetadata storage or/andwoodyevent handler make sure to properly setup corresponding applications in yourapp.srcfile, since they are optional forscoperand not configured as it's application dependencies.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
