Skip to content

Latest commit

 

History

History
87 lines (72 loc) · 3.35 KB

README.md

File metadata and controls

87 lines (72 loc) · 3.35 KB

dropwizard-logback-logstash-encoder

WARNING

This is a fork of from the stalar fork of the larrymyers fork, which itself is a fork of the poorly maintained wikia fork. Don't expected this fork to be maintained in time.

Dropwizard logging addon for sending logs using the logstash-logback-encoder. This is needed because Dropwizard overwrites the default mechanism for loading logback configuration (logback.xml) in favor of its application.yml files.

Dropwizard Version Compatibility

  • dropwizard 0.8.4 => dropwizard-logstash-encoder 1.1.0
  • dropwizard 0.9.0 => dropwizard-logstash-encoder 1.2.0
  • dropwizard 1.3.14 => dropwizard-logstash-encoder 3.0.0 (Java 11)

Installation

Must be manually build and added to your repository manager.

Maven:

<dependency>
  <groupId>de.joblift</groupId>
  <artifactId>dropwizard-logstash-encoder</artifactId>
  <version>3.0.0</version>
</dependency>

Usage

You must configure dropwizard to use these appenders in your application.yml file:

logging:
  appenders:
    - type: logstash-socket # LogstashSocketAppender, for LogstashTcpSocketAppender use logstash-tcp
      ...

Additional configuration keys for the appender, see logstash-logback-encoder#usage for info. All configs apply to both logstash-socket and logstash-tcp, unless otherwise noted:

  • host - string - maps to syslogHost when using logstash-socket, and remoteHost when using logstash-tcp
  • port - int
  • includeCallerInfo - boolean
  • includeContext - boolean
  • includeMdc - boolean
  • customFields - hashmap - the configuration differs from the original logstash-logback-encoder config in that this is not a raw json string (see example below)
  • fieldNames - hashmap
  • queueSize - int - only valid for logstash-tcp
  • includeCallerData - bool - only valid for logstash-tcp
  • prefix - string - pattern written before the JSON object, only valid for logstash-socket
  • suffix - string - pattern written after the JSON object, only valid for logstash-socket

For more information about prefixes and suffixes, please refer to logstash-logback-encoder#prefixsuffix.

Example config:

logging:
  appenders:
    - type: logstash-socket
      host: 127.0.0.1
      fieldNames:
        message: msg
        timestamp: log_date
      customFields:
        myTestField1: myTestVal
        myTestField2: 2

Then, loggers can be used the same way as if they were configured using logback.xml for logstash-logback-encoder, example (using Guava):

LoggerFactory.getLogger("myTestLogger").warn(
	appendEntries(
		new ImmutableMap.Builder<String, Object>()
			.put("some_key", 1)
			.put("some_other_key", "two")
			.build()
	),
	"warning! warning!");

Or even more simpler, by using de.galan:commons Say class, eg.:

Say.warn("Hello {key}", "World");

License

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.