Skip to content
Advertisement

GKE & Stackdriver: Java logback logging format?

I have a project running Java in a docker image on Kubernetes. Logs are automatically ingested by the fluentd agent and end up in Stackdriver.

However, the format of the logs is wrong: Multiline logs get put into separate log lines in Stackdriver, and all logs have “INFO” log level, even though they are really warning, or error.

I have been searching for information on how to configure logback to output the correct format for this to work properly, but I can find no such guide in the google Stackdriver or GKE documentation.

My guess is that I should be outputting JSON of some form, but where do I find information on the format, or even a guide on how to properly set up this pipeline.

Thanks!

Advertisement

Answer

This answer contained most of the information I needed: https://stackoverflow.com/a/39779646

I have adapted the answer to fit my exact question, and to fix some weird imports and code that seems to have been deprecated.

logback.xml:

JavaScript

GCPCloudLoggingJSONLayout:

JavaScript

As I said earlier, the code was originally from another answer, I have just cleaned up the code slightly to fit my use-case better.

User contributions licensed under: CC BY-SA
3 People found this is helpful
Advertisement