The repo was forked from https://github.com/SYNAXON/logstash-util-formatter, and the source file has been edited. This means that some field names have been changed or removed, and some of the functionality claimed below in this README may not be valid. Changes were made to standardize the format to be consistent with another logging library, and features/fields were removed in order to improve performance.
To build a jar file to use as a dependency in the server code, run:
mvn package
The jar file will be located in the target directory.
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"
}
}
- 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.