The Wayback Machine - https://web.archive.org/web/20200905044708/https://github.com/rbkmoney/scoper/
Skip to content
master
Go to file
Code

README.md

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 and 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 implementing scoper_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 and rpc.server.

Note, if using lager metadata storage or/and woody event handler make sure to properly setup corresponding applications in your app.src file, since they are optional for scoper and not configured as it's application dependencies.

About

Log scopes Erlang library.

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.