Packages
membrane_core
0.4.3
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.7
1.2.6
1.2.5
retired
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc1
1.1.2
1.1.1
1.1.0
1.1.0-rc1
1.1.0-rc0
1.0.1
1.0.0
1.0.0-rc1
1.0.0-rc0
0.12.9
0.12.8
0.12.7
0.12.6
0.12.5
0.12.4
0.12.3
0.12.2
0.12.1
0.12.0
retired
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.9.0
0.8.2
0.8.1
0.8.0
0.7.0
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.3
0.4.2
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
Membrane Multimedia Framework (Core)
Current section
Files
Jump to
Current section
Files
lib/membrane/log/logger/base.ex
defmodule Membrane.Log.Logger.Base do
@moduledoc """
This is a base module used by all logger implementations.
"""
@doc """
Callback invoked when logger is initialized, right after new process is
spawned.
On success it should return `{:ok, initial_logger_state}`.
"""
@callback handle_init(Membrane.Log.Logger.logger_options_t()) ::
{:ok, any}
| {:error, any}
@doc """
Callback invoked when new log message is received.
Callback delivers 5 arguments:
* atom containing log level
* message - in IO list format
* time
* tags (list of atoms, e.g. module name)
* internal logger state
On success, it returns `{:ok, new_state}`. it will just update logger's state
to the new state.
If it returns `{:error, reason, new_state}` it indicates that something
went wrong, and logger was unable to handle log. State will be updated to
the new state.
"""
@callback handle_log(
Membrane.Log.Logger.msg_level_t(),
Membrane.Log.Logger.message_t(),
String.t(),
list(Membrane.Log.Logger.tag_t()),
any
) ::
{:ok, any}
| {:error, any, any}
@doc """
Callback invoked when logger is shutting down just before process is exiting.
It will receive the logger state.
Return value is ignored.
"""
@callback handle_shutdown(any) :: any
defmacro __using__(_) do
quote location: :keep do
@behaviour Membrane.Log.Logger.Base
# Default implementations
@doc false
def handle_init(_opts), do: {:ok, %{}}
@doc false
def handle_shutdown(_state), do: :ok
defoverridable handle_init: 1,
handle_shutdown: 1
end
end
end