.github/workflows | ||
src | ||
test | ||
.editorconfig | ||
.env | ||
.gitignore | ||
Dockerfile.dev | ||
elvis.config | ||
LICENSE | ||
Makefile | ||
README.md | ||
rebar.config | ||
rebar.lock |
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/1
andscoper: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_storage
behaviour. 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.client
andrpc.server
.
Note, if using
lager
metadata storage or/andwoody
event handler make sure to properly setup corresponding applications in yourapp.src
file, since they are optional forscoper
and not configured as it's application dependencies.