LoggerMulticastBackend
A backend for Logger
that delivers messages over multicast UDP.
Designed for headless embedded applications, it allows watching the log over the local network.
Usage
The package can be installed by adding logger_multicast_backend
to your list of dependencies in mix.exs
:
def deps do
[{:logger_multicast_backend, "~> 0.2"}]
end
Easy Defaults
In your logger config, simply do something like this:
config :logger,
backends: [ :console, LoggerMulticastBackend ]
or, at runtime, you can add this to your current config…
Logger.add_backend LoggerMulticastBackend
Now, you’ll have logging messages sent out on the default target multicast address, which is 224.0.0.224:9999.
To capture log messages on systems with socat, run:
$ socat - udp-recv:9999,ip-add-membership=224.0.0.224:eth0
or use cell:
$ cell watch
Custom Configuration
Don’t like the default multicast target or format? Change it by including options like this:
config :logger, :logger_multicast_backend,
target: {{224,1,22,223}, 4252},
format: "$time $metadata[$level] $message\\n",
level: :info
The full range of custom configuration options in the tuple are as follows:
target - a tuple of the target unicast or multicast address and port, like {{241,0,0,3}, 52209}
level - the level to be logged by this backend. Note that messages are first filtered by the general level configuration in :logger
format - the format message used to print logs. Defaults to:
"$time $metadata[$level] $levelpad$message\n"
metadata - the metadata to be printed by $metadata. Defaults to an empty list (no metadata)