Download and unpack module

TOMCATDIR=/opt/tomcat
cd ~
wget https://repo1.maven.org/maven2/biz/paluch/logging/logstash-gelf/1.11.0/logstash-gelf-1.11.0-logging-module.zip
unzip logstash-gelf-1.11.0-logging-module.zip
mv logstash-gelf-1.11.0/biz/paluch/logging/main/*.jar $TOMCATDIR/ext-libs/
rm -Rf ~/logstash-gelf-1.11.0

Add module to classpath

vi $TOMCATDIR/bin/catalina.sh
...
...
# Add tomcat-juli.jar to classpath
# tomcat-juli.jar can be over-ridden per instance
...
...
# Add GELF libs to classpath
CLASSPATH=$CLASSPATH:$CATALINA_BASE/ext-libs/logstash-gelf-1.11.0.jar:$CATALINA_BASE/ext-libs/jedis-2.8.1.jar:$CATALINA_BASE/ext-libs/commons-pool2-2.4.2.jar
...
...

configure logging

vi $TOMCATDIR/conf/logging.properties
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandleri, biz.paluch.logging.gelf.jul.GelfLogHandler
.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler, biz.paluch.logging.gelf.jul.GelfLogHandler

biz.paluch.logging.gelf.jul.GelfLogHandler.host=udp:elk.project.example.com.com
biz.paluch.logging.gelf.jul.GelfLogHandler.port=12201
biz.paluch.logging.gelf.jul.GelfLogHandler.level=INFO
biz.paluch.logging.gelf.jul.GelfLogHandler.version=1.1

biz.paluch.logging.gelf.jul.GelfLogHandler.extractStackTrace=true
biz.paluch.logging.gelf.jul.GelfLogHandler.filterStackTrace=true
biz.paluch.logging.gelf.jul.GelfLogHandler.timestampPattern=yyyy-MM-dd HH:mm:ss,SSSS
#biz.paluch.logging.gelf.jul.GelfLogHandler.maximumMessageSize=8192
biz.paluch.logging.gelf.jul.GelfLogHandler.maximumMessageSize = 131072
biz.paluch.logging.gelf.jul.GelfLogHandler.facility=tomcat-uat
biz.paluch.logging.gelf.jul.GelfLogHandler.originHost = tomcat1.project.example.com
biz.paluch.logging.gelf.jul.GelfLogHandler.additionalFields=landscape=UAT
biz.paluch.logging.gelf.jul.GelfLogHandler.additionalFieldTypes=landscape=String
biz.paluch.logging.gelf.jul.GelfLogHandler.filter = none
...