easco

easco

Make an unhandled exception more noisy

I have a process, using gen_statem, which was crashing (and being restarted by a supervisor) because of an unhandled exception.

When I first encountered the issue while debugging it was clear that the process was restarting, but the unhandled exception didn’t cause anything to be printed to the console. It would silently fail, the supervisor would restart things, and the cycle would continue.

Tracking down the issue would have been much faster if the exception had been more “noisy”. I tried using the :debug option for my server with both “:trace” and “:log” - while it was interesting to see the system messages the exception was still silently raised and handled.

Is there something I could have done to make the unhandled exception more “noisy”, at least in dev mode, so I could have come to a resolution more swiftly?

Marked As Solved

OvermindDL1

OvermindDL1

Enable the built-in sasl app, but be warned, it will be VERY noisy. It logs all OTP process creation and crashes and so forth.

Last Post!

grzuy

grzuy

For what is worth, updating this thread after 5 years.

Fortunately now (since Erlang/OTP 21) a new improved logger exists, which deprecates the sasl app.

Quote from SASL Error Logging — OTP 29.0.2 (sasl 4.4) as of today:

The SASL error logging concept described in this section is deprecated since Erlang/OTP 21.0, when the new logging API was introduced.

The new default behaviour is that the SASL application no longer affects which log events that are logged. Supervisor reports and crash reports are logged via the default logger handler which is setup by Kernel. Progress reports are by default not logged, but can be enabled by setting the primary log level to info, for example by using the Kernel configuration parameter logger_level.

Where Next?

Popular in Questions Top

vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New

Other popular topics Top

sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
albydarned
Hello all! I am typing this post from my new MacBook Pro with the M1 chip. I’m loving it so far, and will probably use it as my daily dr...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New
AstonJ
Posting this to see if we can make things easier for people to get into Neovim. If you use Neovim and have a favourite distro please let ...
New

We're in Beta

About us Mission Statement