-module(viva_telemetry@examples@log_example). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/viva_telemetry/examples/log_example.gleam"). -export([main/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC( " Example: Using viva_telemetry/log\n" "\n" " Run: gleam run -m viva_telemetry/examples/log_example\n" ). -file("src/viva_telemetry/examples/log_example.gleam", 11). -spec main() -> nil. main() -> viva_telemetry@log:configure( [viva_telemetry@log@handler:console_with_level(debug), viva_telemetry@log@handler:json(<<"app.jsonl"/utf8>>)] ), viva_telemetry@log:info( <<"Server starting"/utf8>>, [{<<"port"/utf8>>, <<"8080"/utf8>>}, {<<"env"/utf8>>, <<"dev"/utf8>>}] ), viva_telemetry@log:debug( <<"Config loaded"/utf8>>, [{<<"file"/utf8>>, <<"config.toml"/utf8>>}] ), viva_telemetry@log:warning( <<"Deprecated API used"/utf8>>, [{<<"endpoint"/utf8>>, <<"/v1/users"/utf8>>}] ), viva_telemetry@log:error( <<"Connection failed"/utf8>>, [{<<"host"/utf8>>, <<"db.local"/utf8>>}, {<<"retries"/utf8>>, <<"3"/utf8>>}] ), viva_telemetry@log:with_context( [{<<"request_id"/utf8>>, <<"abc123"/utf8>>}, {<<"user_id"/utf8>>, <<"42"/utf8>>}], fun() -> viva_telemetry@log:info(<<"Processing request"/utf8>>, []), viva_telemetry@log:debug( <<"Fetching user data"/utf8>>, [{<<"table"/utf8>>, <<"users"/utf8>>}] ), viva_telemetry@log:info( <<"Request completed"/utf8>>, [{<<"status"/utf8>>, <<"200"/utf8>>}] ) end ), _pipe = gleam@list:range(1, 100), gleam@list:each( _pipe, fun(I) -> viva_telemetry@log:sampled( debug, 0.1, <<"High frequency event"/utf8>>, [{<<"i"/utf8>>, erlang:integer_to_binary(I)}] ) end ), viva_telemetry@log:trace(<<"Very detailed trace"/utf8>>, []), viva_telemetry@log:notice(<<"Something noteworthy"/utf8>>, []), viva_telemetry@log:critical(<<"System critical!"/utf8>>, []), viva_telemetry@log:alert(<<"Immediate action needed!"/utf8>>, []), viva_telemetry@log:emergency(<<"System down!"/utf8>>, []), viva_telemetry@log:info(<<"Demo completed!"/utf8>>, []).