Elixir logger backend for Graylog based on GELF.
Documentation is available on hex.pm
The package can be installed by adding gelfx
to your list of dependencies in mix.exs
:
def deps do
[
{:gelfx, "~> 1.0"}
]
end
And adding it to your :logger
configuration in config.exs
:
config :logger,
backends: [
:console,
Gelfx
]
Since GELF relies on json to encode the payload Gelfx will need a JSON library. By default Gelfx will use Jason which needs to be added to your deps in mix.exs:
{:jason, "~> 1.0"}
Gelfx has full support of the Elixir Logger and Gelf/Graylog features.
- Support for TCP, UDP, and HTTP
- Graceful changes to the protocol configuration during runtime
- Support for GZIP and ZLIB compression
- (TCP) When Gelfx is unable to transmit packets due to an connection loss packets are stored and resend once the connection is reestablished
- Log-levels are correctly mapped onto the corresponding GELF selectors
- Elixir
format
- Log messages are formatted using theElixir.Logger.Formatter
- Logger
metadata
is correctly stored in the GELF payload - Support for the
utc_log
Logger option, since GELF expects utc timestamps this has to be handled accordingly
Copyright 2020 Hans Bernhard Gödeke
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.