View Source LifeCycleHook (life_cycle_hook v0.5.0)
LifeCycleHook is a simple hook that logs each life-cycle step of LiveView.
It is good for learning Phoenix LiveView life-cycle.
Overview
By mounting LifeCycleHook
on LiveView with use LifeCycleHook
, you can see logs for each life-cycle of LiveView.
defmodule MyApp.MyLive do
use Phoenix.LiveView
use LifeCycleHook
@impl true
def render(assigns) do
...
end
end
[debug] Elixir.MyApp.MyLive mount with HTTP
[debug] Elixir.MyApp.MyLive handle_params with HTTP
[debug] Elixir.MyApp.MyLive mount with WebSocket
[debug] Elixir.MyApp.MyLive handle_params with WebSocket
only/except options
If you want to choose specific stages to log, you can use only
or except
option in use LifeCycleHook
.
For example, you can set only: [:mount]
option to use LifeCycleHook
in sticky nested LiveView which doesn't support handle_params
hook.
defmodule MyApp.MyStickyNestedLive do
use Phoenix.LiveView
use LifeCycleHook, only: [:mount]
@impl true
def render(assigns) do
...
end
end
[debug] Elixir.MyApp.MyStickyNestedLive mount with HTTP
[debug] Elixir.MyApp.MyStickyNestedLive mount with WebSocket
log_level option
You can change log level of LifeCycleHook
with log_level
option.
defmodule MyApp.MyWarnLogLevelLive do
use Phoenix.LiveView
use LifeCycleHook, log_level: :warn
@impl true
def render(assigns) do
...
end
end
[warning] Elixir.MyApp.MyWarnLogLevelLive mount with HTTP
[warning] Elixir.MyApp.MyWarnLogLevelLive mount with WebSocket
Installation
The package can be installed by adding :life_cycle_hook
to your list of
dependencies in mix.exs
:
def deps do
[
{:life_cycle_hook, "~> 0.5"}
]
end