A Papertrail backend for Elixir Logger.
Available in Hex. The package can be installed as:
-
Add
logger_papertrail_backend
to your list of dependencies inmix.exs
:def deps do [{:logger_papertrail_backend, "~> 0.1.0"}] end
-
Ensure
logger
andlogger_papertrail_backend
is started before your application:def application do [applications: [:logger, :logger_papertrail_backend]] end
-
In your
config.exs
(or in your#{Mix.env}.exs
-files):config :logger, :logger_papertrail_backend, host: "logs.papertrailapp.com:", level: :warn, system_name: "Wizard", format: "$metadata $message"
Alternatively use :url for shorter config.
Prepend with "papertrail://" or "syslog://" then host:port/system_name. We normally set an ENV-var: url: System.get_env("PAPERTRAIL_URL")
config :logger, :logger_papertrail_backend,
url: "papertrail://logs.papertrailapp.com:<port>/<system_name>",
level: :warn,
format: "$metadata $message"
Then config :logger
to use the LoggerPapertrailBackend.Logger
:
config :logger,
backends: [ :console,
LoggerPapertrailBackend.Logger
],
level: :debug
Note: if you have an umbrella project, use your top config.exs
.
- (Required) Follow "Add System" in your Papertrail dashboard to get
:host
values - (Optional) Set
:level
for this backend (overides global:logger
-setting ) - (Optional) Set specific
:system_name
in Papertrail, defaults to current application-name - (Optional) Set :format, defaults to
[$level] $levelpad$metadata $message
, see Logger.Formatter - Other supported options in config are
:colors
,:metadata
. See :console-docs in Elixir.Logger
Oct 02 14:19:04 Wizard UpptecSlack.SlackBot: [info] Successfully authenticated as user "wizard" on team "Upptec"
Papertrail sets timestamp when message arrives. Wizard
is :system_name
. UpptecSlack.SlackBot
is the module sending the log. [Info]
is level.