Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/huksley/gelf-logger

Java Log4j, Log4j2, JUL logger to send log messages to Graylog and other GELF compatible servers.
https://github.com/huksley/gelf-logger

Last synced: 2 months ago
JSON representation

Java Log4j, Log4j2, JUL logger to send log messages to Graylog and other GELF compatible servers.

Awesome Lists containing this project

README

        

gelf-logger
===========
Unified logger for java to send message to Graylog via JUL, Log4j, etc. ZERO external dependencies.

Supports sending via GELF to:
* Graylog (UDP and TCP)
* Logstash

Supports logging frameworks:
* Java Util Logging
* Log4j (experimental version)
* Log4j2 (experimental version)

License
=======
Apache License 2.0

Derived work
============
This project is based on https://github.com/Graylog2/gelfj/ and contain contributions from authors of this project.

Supported generic options
=========================
* **host** Graylog (or other GELF server such as logstash) to send logs to. Default: localhost
* **facility** Subsystem which generated logs. Usually this is server node or process. Default: gelf-logger, or jvmRoute system property, if defined.
* **protocol** Protocol to use to connect to Graylog. Default: UDP
* **port** Port to connect to. Default: 12202
* **fields** Additional comma separated list of fields to send along with message.
* **extended** If set to true, will gather exception, source class and method, logger name. Default: true
* **updater** Fully qualified class name which can update message to provide additional information, must implement com.wizecore.graylog.GelfMessageUpdater
* **stacktrace** If set to true, if exception attached to message it will be added to message text via newline.
* **originHost** Source of messages. Will be determined automatically if not set.

Java Util Logging
=================
Add these lines to logging.properties file (specifed via -Djava.util.logging.config.file=logging.properties or framework)

# Add to handlers
handlers=java.util.logging.ConsoleHandler, ..., com.wizecore.graylog.GelfHandler

# Configure, everything is optional, see below for defaults

## Set host where graylog2-server is installed
# com.wizecore.graylog.GelfHandler.host = localhost

## It is recommended to override facility field
# com.wizecore.graylog.GelfHandler.facility = gelf-java
# com.wizecore.graylog.GelfHandler.protocol = udp
# com.wizecore.graylog.GelfHandler.port = 12201

## Comma-separated list of additional fields to send (name=value, name=value, ...)
# com.wizecore.graylog.GelfHandler.fields =

## If set to true, will gather exception, source class and method, logger name and call extended class
# com.wizecore.graylog.GelfHandler.extended = true

## Special class which implements com.wizecore.graylog.MessageUpdater
# com.wizecore.graylog.GelfHandler.updater =

## If exception, add stacktrace to message
# com.wizecore.graylog.GelfHandler.stacktrace = true

## Override host field (will be source field in Graylog) to something else
# com.wizecore.graylog.GelfHandler.originHost = CUSTOM-HOST

## Minimum level of messages to send to graylog
# com.wizecore.graylog.GelfHandler.level = INFO

## Formatter for message text
# com.wizecore.graylog.GelfHandler.formatter = java.util.logging.SimpleFormatter

## JUL optional property to configure java.util.logging.Filter
# com.wizecore.graylog.GelfHandler.filter =

Log4j
=====
Supports the same set of properties as in Java Util Logging configuration, see above.

If using XML configuration format, declare appender:






and then add it as a one of appenders:




If using log4j.properties format, declare appender:

# Define the graylog2 destination
log4j.appender.graylog2=com.wizecore.graylog.GelfAppender
log4j.appender.graylog2.layout=org.apache.log4j.PatternLayout
log4j.appender.graylog2.layout.ConversionPattern=%m
log4j.appender.graylog2.host=localhost
# log4j.appender.graylog2.param = value

Attach to root logger, or elsewhere:

# Send all INFO logs to graylog2
log4j.rootLogger=INFO, graylog2

Log4j2
======
Add to appenders:


....



Add reference to logger:


...