As we did / are doing for Gerrit with T141324 we could use the Jenkins daemon logs (not the build console / result) to be sent to logstash.
Need a log4j.property file and figure out how much log crazy Jenkins might end up sending.
Migrated Jenkins to use systemd via Puppet patch 07c8bb1ab3 and others. The logging is emitted to stdout, captured by systemd and end up in syslog. We lost the log level in the process though so that is not ideal.
42d145823f introduces a property file to configure logging, that can probably be tweaked to have Jenkins to additionally send logs to logstash?
handlers=java.util.logging.ConsoleHandler # https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html # # Time is inserted by syslog. Else one could use: %1$tF %1$tT.%1$tL # # Arguments from Jenkins: # - %2 is the class/method # - %4 log level # - %5 message java.util.logging.SimpleFormatter.format = %4$s: [%2$s] %5$s%n java.util.logging.ConsoleHandler.level = WARNING java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
It is invoked with java -Dlog4j.configuration=file:///var/lib/gerrit2/review_site/etc/log4j.xml which has all the logging configuration. This way the service owner can tweak which logs are emitted rather "easily".