ExCut
Introducing ExCut a library to inject concerns to your Elixir functions.
Motivation
Add cross-cutting concerns such as logging, timing, tracing, etc… to any functions in your application without cluttering your code base.
Sample Cold Cut…
use ExCut, marker: :log, pre: :pre_log, post: :post_log
@log level: :debug
def elvis(a) when is_number(a) , do: a
@log level: :info
def elvis(a) when is_binary(a), do: "Elvis is a " <> a