A simple logger that writes messages to log files only (not to the console).
Summary
Functions
Either aliases File.Only.Logger (this module) and requires the alias or
imports File.Only.Logger. In the latter case, you could instead simply
import File.Only.Logger.
Injects function alert/2 into the caller's module.
Returns the application for the current process or module.
Injects function critical/2 into the caller's module.
Injects function debug/2 into the caller's module.
Injects function emergency/2 into the caller's module.
Injects function error/2 into the caller's module.
Returns a formatted heredoc to trace a message from the given env
(Macro.Env) and module.
Returns string "<module>.<function>/<arity>" e.g. "My.Math.sqrt/1" from the
given env (Macro.Env).
Injects function info/2 into the caller's module.
Will prefix string with "\n<padding>" if string is longer than
<line_length> - offset where <padding> and <line_length> are
respectively the :padding and :line_length options.
Returns the current module as a string.
Injects function notice/2 into the caller's module.
Injects function warning/2 into the caller's module.
Functions
Either aliases File.Only.Logger (this module) and requires the alias or
imports File.Only.Logger. In the latter case, you could instead simply
import File.Only.Logger.
Examples
use File.Only.Logger, alias: FileLogger
use File.Only.Logger
import File.Only.Logger
Injects function alert/2 into the caller's module.
The function will execute the do_block and write its result to the
configured alert log file.
Returns the application for the current process or module.
Returns :undefined if the current process does not belong to any
application or the current module is not listed in any application spec.
Examples
use File.Only.Logger
error :exit, {reason} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
• App: #{app()}\
"""
end
Injects function critical/2 into the caller's module.
The function will execute the do_block and write its result to the
configured critical log file.
Injects function debug/2 into the caller's module.
The function will execute the do_block and write its result to the
configured debug log file.
Injects function emergency/2 into the caller's module.
The function will execute the do_block and write its result to the
configured emergency log file.
Injects function error/2 into the caller's module.
The function will execute the do_block and write its result to the
configured error log file.
Examples
use File.Only.Logger
error :exit, {reason} do
"""
\n'exit' caught...
Reason => #{inspect(reason)}\
"""
end
Returns a formatted heredoc to trace a message from the given env
(Macro.Env).
Examples
use File.Only.Logger
error :exit, {reason, env} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
#{from(env)}\
"""
end
Returns a formatted heredoc to trace a message from the given env
(Macro.Env) and module.
Examples
use File.Only.Logger
error :exit, {reason, env} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
#{from(env, __MODULE__)}\
"""
end
Returns string "<module>.<function>/<arity>" e.g. "My.Math.sqrt/1" from the
given env (Macro.Env).
Examples
use File.Only.Logger
error :exit, {reason, env} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
• Function: #{fun(env)}\
"""
end
Injects function info/2 into the caller's module.
The function will execute the do_block and write its result to the
configured info log file.
Examples
use File.Only.Logger
info :game_state, {player, game} do
"""
\nNote that #{player.name}...
• Has joined game #{inspect(game.name)}
• Game state: #{inspect(game.state)}\
"""
end
Will prefix string with "\n<padding>" if string is longer than
<line_length> - offset where <padding> and <line_length> are
respectively the :padding and :line_length options.
Options
:line_length(positive integer) - the preferred line length of messages sent to the log files. Defaults to 80.:padding(string) - Filler inserted after the line break. Defaults to "\s\s".
Examples
use File.Only.Logger
error :exit, {reason, env} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
• Function: #{fun(env) |> maybe_break(12)}\
"""
end
Returns the current module as a string.
Examples
use File.Only.Logger
error :exit, {reason} do
"""
\n'exit' caught...
• Reason: #{inspect(reason)}
• Module: #{mod()}\
"""
end
Injects function notice/2 into the caller's module.
The function will execute the do_block and write its result to the
configured notice log file.
Injects function warning/2 into the caller's module.
The function will execute the do_block and write its result to the
configured warning log file.