Hi As of version 4.1 Karaf will use Log4J 2 as logging backend (thanx, Guillaume). It’s very good news, because it greatly simplify configuration of robust production logging - compression, flexible rotation rules, async, fallback logging. All this features comes out of the box with Log4J 2. No more custom appenders needs to be installed at first start time to achieve basic production quality configuration.
But for advanced production logging one option is missing out of the box - logging analysis tools integration, line ELK, Fluentd, Graylog, Splunk. To achieve this capability in robust way we should again install custom appender ( like https://github.com/Graylog2/log4j2-gelf <https://github.com/Graylog2/log4j2-gelf> ) at first start time. I know, it can be installed as regular bundle fragment after first startup. But installing appender this way has some drawbacks that make it unacceptable for production usage: 1. First startup logs not coming in appender installed after start. (stopper for automated deployments) 2. If appender configured before bundle cache initialization - there is errors in file logs about missing appender class. Cache clean up is not so rare on production deployment, usually it is simpler to clean cache before some major software update that dealing with deps conflicts on upgrade. 3. After installation of custom appender bundle host bundle should be refreshed (some log entries may be lost). If custom appender is MAIN logging channel restriction above not acceptable for us. Workaround is simple but very inconvenient to support for different versions of Karaf: - add appender jar to system lib - modify startup.properties to incude appender bundle My proposal: include GELF Log4J 2 appender in standart distribution. In such way we provide log streaming capability to all major logging analysis tools. Because of growing adoption of log analysis tools it may be good addition to Karaf feature portfolio in addition to own solution Decanter. I can provide PR on Github with carefully repackaged appender lib that not export anything to other bundles. What do you think? Thanx, Vladimir Konkov