Zenohex.Nif.Logger (Zenohex v0.9.1-beta.1)

Copy Markdown View Source

Developer utility for interacting with the native logger.

This module provides functions to enable, disable, and configure logging from the underlying NIF layer.

When enabled, log messages from the native code are forwarded to the Elixir Logger system via Zenohex.Nif.Logger.GenServer.

By default, logging is disabled. You must explicitly call enable/0 to start receiving logs from the NIF layer.

This module is intended for debugging and development use only, and should typically not be used in production environments.

Examples

iex> :ok = Zenohex.Nif.Logger.enable()
iex> :ok = Zenohex.Nif.Logger.set_level(:info)
iex> :ok = Zenohex.Nif.Logger.set_target("zenoh")
iex> {:ok, session_id} = Zenohex.Session.open()

11:12:16.162 [info] [zenoh::net::runtime] Using ZID: 600e0683e440f79e2e06053232748346

11:12:16.166 [info] [zenoh::net::runtime::orchestrator] Zenoh can be reached at: tcp/[fe80::dead:beef:cafe:1234]:45215

11:12:16.166 [info] [zenoh::net::runtime::orchestrator] Zenoh can be reached at: tcp/10.0.123.45:45215

11:12:16.166 [info] [zenoh::net::runtime::orchestrator] zenohd listening scout messages on 224.0.0.224:7446
{:ok, #Reference<0.3207146932.3642621953.187320>}

Summary

Functions

Disables the native logger.

Enables the native logger.

Retrieves the current log level.

Retrieves the current logger target (i.e., module path).

Sets the log level.

Sets the logger target (i.e., module path).

Types

level()

@type level() :: :error | :warning | :info | :debug

Functions

disable()

Disables the native logger.

Stops forwarding log messages from the NIF layer to Elixir's Logger.

enable()

Enables the native logger.

Once enabled, log messages from the NIF layer will be forwarded to Elixir's Logger.

By default, logging is disabled.

get_level()

@spec get_level() :: {:ok, level()}

Retrieves the current log level.

The log level controls which messages are emitted from the NIF layer and forwarded to Elixir's Logger.

get_target()

@spec get_target() :: String.t()

Retrieves the current logger target (i.e., module path).

The target is a Rust's module path string within the NIF layer.

By default, the target is "zenohex_nif".

set_level(level)

@spec set_level(level :: level()) :: :ok

Sets the log level.

Adjusts the verbosity of the NIF logger. Accepts atoms like :error, :warning, :info, or :debug. Messages at this level or higher will be forwarded to Elixir's Logger.

By default, the level is :debug.

Examples

iex> Zenohex.Nif.Logger.set_level(:info)

set_target(target)

@spec set_target(String.t()) :: :ok

Sets the logger target (i.e., module path).

This value is used for filtering logging.

Examples

Setting the target to "zenoh" enables all log messages coming from the Zenoh.

iex> Zenohex.Nif.Logger.set_target("zenoh")