Packages

A simple Google Cloud Platform compliant logging library for Gleam!

Current section

Files

Jump to
gclog src gclog.erl
Raw

src/gclog.erl

-module(gclog).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([new_stdout/2, new_stderr/2, entry/2, log/3, default/2, debug/2, info/2, notice/2, warning/2, error/2, critical/2, alert/2, emergency/2]).
-export_type([logger/2]).
-type logger(GAG, GAH) :: {logger,
gclog@severity:severity(),
fun((binary()) -> GAH),
fun((GAG) -> gleam@json:json())}.
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 32).
-spec new_stdout(gclog@severity:severity(), fun((GAK) -> gleam@json:json())) -> logger(GAK, nil).
new_stdout(Severity, Serializer) ->
{logger, Severity, fun gleam_stdlib:println/1, Serializer}.
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 40).
-spec new_stderr(gclog@severity:severity(), fun((GAO) -> gleam@json:json())) -> logger(GAO, nil).
new_stderr(Severity, Serializer) ->
{logger, Severity, fun gleam_stdlib:println_error/1, Serializer}.
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 48).
-spec entry(logger(any(), any()), gclog@entry:entry()) -> nil.
entry(Logger, Entry) ->
case gclog@severity:to_int(erlang:element(2, Entry)) >= gclog@severity:to_int(
erlang:element(2, Logger)
) of
true ->
_pipe = gclog@entry:to_json(Entry),
_pipe@1 = gleam@json:to_string(_pipe),
(erlang:element(3, Logger))(_pipe@1),
nil;
false ->
nil
end.
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 61).
-spec log(logger(GAW, any()), GAW, gclog@severity:severity()) -> nil.
log(Logger, Message, Severity) ->
_pipe = (erlang:element(4, Logger))(Message),
_pipe@1 = gclog@entry:new(Severity, _pipe),
entry(Logger, _pipe@1).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 68).
-spec default(logger(GBA, any()), GBA) -> nil.
default(Logger, Message) ->
log(Logger, Message, default).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 73).
-spec debug(logger(GBE, any()), GBE) -> nil.
debug(Logger, Message) ->
log(Logger, Message, debug).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 78).
-spec info(logger(GBI, any()), GBI) -> nil.
info(Logger, Message) ->
log(Logger, Message, info).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 83).
-spec notice(logger(GBM, any()), GBM) -> nil.
notice(Logger, Message) ->
log(Logger, Message, notice).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 88).
-spec warning(logger(GBQ, any()), GBQ) -> nil.
warning(Logger, Message) ->
log(Logger, Message, warning).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 93).
-spec error(logger(GBU, any()), GBU) -> nil.
error(Logger, Message) ->
log(Logger, Message, error).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 98).
-spec critical(logger(GBY, any()), GBY) -> nil.
critical(Logger, Message) ->
log(Logger, Message, critical).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 103).
-spec alert(logger(GCC, any()), GCC) -> nil.
alert(Logger, Message) ->
log(Logger, Message, alert).
-file("/home/sam/dev/personal/gclog/src/gclog.gleam", 108).
-spec emergency(logger(GCG, any()), GCG) -> nil.
emergency(Logger, Message) ->
log(Logger, Message, emergency).