Java Util Logging formatter to encode logging events as json events which can consumed by logstash.
Java
Switch branches/tags
Nothing to show
Clone or download
kofrezo Merge pull request #13 from johnedo1234/master
Version 1.1 - fixes issues 10 and 11
Latest commit 43e3985 May 27, 2015
Permalink
Failed to load latest commit information.
src Fixes issue 11 - expand %-style format strings May 21, 2015
.gitignore initial commit Apr 16, 2013
ASL2.0 initial commit Apr 16, 2013
LICENSE initial commit Apr 16, 2013
README.md Add additonal tags. Jul 2, 2013
pom.xml Bumped version to 1.1 May 21, 2015

README.md

Java Util Logging JSON encoder for Logstash

Include as a dependency

First, add it to your project as a dependency.

Maven style:

<dependency>
  <groupId>net.logstash.logging</groupId>
  <artifactId>logstash-util-formatter</artifactId>
  <version>1.0</version>
</dependency>

Use it in your logging.properties like this:

handlers=java.util.logging.ConsoleHandler
java.util.logging.ConsoleHandler.formatter=net.logstash.logging.formatter.LogstashUtilFormatter

Use it in your logstash configuration like this:

input {
  file {
    type => "your-log-type"
    path => "/some/path/to/your/file.log"
    format => "json_event"
  }
}

Example usage in Jenkins on Debian

  • Create a directory in JENKINS_HOME: mkdir /var/lib/jenkins/lib
  • Copy the shaded jar to this directory.
  • Create a logging.properties in /var/lib/jenkins/lib:
handlers= java.util.logging.ConsoleHandler,java.util.logging.FileHandler
.level= INFO

java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.formatter = net.logstash.logging.formatter.LogstashUtilFormatter
java.util.logging.FileHandler.pattern = /var/log/jenkins/logstash.log
java.util.logging.FileHandler.limit = 5000000
java.util.logging.FileHandler.count = 1

java.util.logging.ConsoleHandler.level = INFO
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
  • Extend JAVA_ARGS in /etc/default/jenkins:
JAVA_ARGS="$JAVA_ARGS -Djava.endorsed.dirs=$JENKINS_HOME/lib -Djava.util.logging.config.file=$JENKINS_HOME/lib/logging.properties"
JAVA_ARGS="$JAVA_ARGS -Dnet.logstash.logging.formatter.LogstashUtilFormatter.tags=master,mailer"
  • Use it in your logstash configuration like this:
input {
  file {
    type => "jenkins-server"
    path => "/var/log/jenkins/logstash.log"
    format => "json_event"
  }
}
  • By setting the system propery net.logstash.logging.formatter.LogstashUtilFormatter.tags you may easily add tags, which let you differentiate between multiple instances running on the same host.