-
Notifications
You must be signed in to change notification settings - Fork 350
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add metadata to logger #631
base: master
Are you sure you want to change the base?
Conversation
@yordis wdyt of this as an idea? |
Use `:conceal` request option to conceal sensitive requests. | ||
|
||
``` | ||
Tesla.get(client, opts: [conceal: true]]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall, I like the idea, the only feedback is about documentation.
We should document in one place
all the "reserved" options that have a given intent.
I like it!
Recently, I had to send the data somehow, I ended up doing the following: defmodule Umbrella.Tesla.Logger do
def log_level(%Tesla.Env{status: status}) when status in 400..499, do: :warning
def log_level(_env), do: :default
def log_formatter(req, {:error, reason}, time) do
%{
time: time,
method: upper_case_method(req),
url: req.url,
path: req.opts[:req_url],
req_body: log_env_body(req),
reason: inspect(reason)
}
end
def log_formatter(req, {:ok, resp}, time) do
%{
time: time,
status: resp.status,
method: upper_case_method(req),
url: req.url,
path: req.opts[:req_url],
req_body: log_env_body(req),
resp_body: log_env_body(resp)
}
end
defp log_env_body(%Tesla.Env{status: status} = env) when status >= 400 do
inspect(env.body)
end
defp log_env_body(_), do: "[REDACTED]"
defp upper_case_method(%Tesla.Env{} = env) do
env.method
|> to_string()
|> String.upcase()
end
end As long as the metadata is under a given key Being said, the ultimate way to deal with this is to simple allow the user to do I think it was a misdirection to call |
2bca420
to
fe7207c
Compare
wip, testing in progress