A new contribution for the community!
JSON logging / using logback has been discussed quite a bit:
- Logback logging Camunda Engine
- Enabling logs in Camunda
- Logback with Camunda 7.8.0
- Configuring logback for shared engine in tomcat
- Logback.xml not read by tomcat
But there has never been a clear way to implement this using the Shared engine approach or using the official camunda docker containers.
So i have put something together that does this:
Specifically my use case is adding JSON logging capabilities so the logs can be picked up by third-party json logging systems such as Elastic search or graylog.
I currently have implemented a pattern that works with Camunda Tomcat 7.9.0.
Detailed usage instructions have been provided: https://github.com/DigitalState/camunda-json-logging/tree/master/tomcat/7.9.0/docker
and a docker hub image has been provided as well. The base of the image is the official camunda tomcat 7.9.0 image with modifications to the image for logging capabilities.
To get started really quickly you can just start using the following:
docker run --name camunda -p 8080:8080 digitalstate/camunda-bpm-platform:tomcat-7.9.0-json-logging
By default JSON is run in “production mode” meaning it wont be Pretty-Print. This is not so great when you are debugging and want human readable logs. So you can turn on pretty print with a ENV var on the container:
docker run --name camunda -p 8080:8080 -e PRETTY_JSON_LOG=true digitalstate/camunda-bpm-platform:tomcat-7.9.0-json-logging
See the Readme for further instructions and capabilities.
All logs from camunda, and Tomcat have been routed into logback.xml.