nallwhy
How can I disable logging of specific library?
I’m using GitHub - larskrantz/logger_papertrail_backend: A Papertrail backend for Elixir Logger · GitHub.
From Elixir v1.15.0, it shows warnings like below.
warning: the log level :warn is deprecated, use :warning instead
(logger 1.15.0) lib/logger.ex:1137: Logger.elixir_level_to_erlang_level/1
(logger 1.15.0) lib/logger.ex:591: Logger.compare_levels/2
(logger_papertrail_backend 1.1.0) lib/logger_papertrail_backend/logger.ex:60: LoggerPapertrailBackend.Logger.meet_level?/2
(logger_papertrail_backend 1.1.0) lib/logger_papertrail_backend/logger.ex:33: LoggerPapertrailBackend.Logger.handle_event/2
(stdlib 5.0.1) gen_event.erl:802: :gen_event.server_update/4
(stdlib 5.0.1) gen_event.erl:784: :gen_event.server_notify/4
(stdlib 5.0.1) gen_event.erl:786: :gen_event.server_notify/4
(stdlib 5.0.1) gen_event.erl:526: :gen_event.handle_msg/6
(stdlib 5.0.1) proc_lib.erl:241: :proc_lib.init_p_do_apply/3
Logger send :warn to logger backends instead of :warning.
This is reported as “warn” in Elixir’s logger backends for backwards compatibility reasons.
https://github.com/elixir-lang/elixir/blob/v1.14.4/lib/logger/lib/logger.ex#L956
logger_papertrail_backend uses Logger.compare_level/2, so it inputs :warn to Logger.compare_level/2.
I want to disable that warning from logger_papertrail_backend.
How can I do that?
Marked As Solved
christhekeele
Per the Logger docs:
If you want to purge all log calls from an application named
:fooand only keep errors fromBar.foo/3, you can set up two different matches:config :logger, compile_time_purge_matching: [ [application: :foo], [module: Bar, function: "foo/3", level_lower_than: :error] ]
So I assume for your purposes you could write something like:
config :logger, compile_time_purge_matching: [
[application: :logger_papertrail_backend, level_lower_than: :error
]
Also Liked
suddengunter
Good idea, but no, I see ExMQTT logs:
they are all prefixed with [ExMQTT]
[debug] [ExMQTT] Connecting to localhost:1883
....
[debug] [ExMQTT] Connected #PID<0.711.0>
Another thing to be aware is that you need recompile the deps after setting up the config.
Yeah, I’ve tried it:
rm -rf _build
rm -rf deps
mix deps.get
mix deps.compile
mix phx.server
I’m starting to think maybe there is something specific to running the app with mix phx.server that is breaking this for me
UPD:
I fixed it with this:
# Do not include metadata nor timestamps in development logs
config :logger, :console, format: "[$level] $message\n"
Logger.put_module_level(ExMQTT, :error)
Logger.put_module_level(:emqtt, :error)
I don’t really like that those put_module_level are not part of config :logger section, but I was not able to figure out how to do it otherwise (and compile_time_purge_matching also did not work, not sure why - don’t really care in this case)
nallwhy
Popular in Questions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance









