Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to log MDC with Spring Sleuth?

I have a Spring boot + sleuth based application. All works as expected. I have for now logs like this:

2017-05-04 17:55:52.226  INFO [alert,692d0eeca479e216,c3c8b680dc29ad02,false] 17292 --- [cTaskExecutor-1] c.k.a.b.s.alert.impl.AlertServiceImpl    : Alert state to process: xxx

Now, I want to add custom MDC to my log like the contract reference for example. I want to have logs like this:

2017-05-04 17:55:52.226  INFO [alert,692d0eeca479e216,c3c8b680dc29ad02,false] [CONTRACT_REF] 17292 --- [cTaskExecutor-1] c.k.a.b.s.alert.impl.AlertServiceImpl    : Alert state to process: xxx

I tried various things with no success:

  1. Use the Spring Sleuth Tracer to add a tag;
  2. Add logging.pattern.level=%5p %mdc to my application.properties file with MDC.put(xxx, xxx)

How can I add custom MDC/tags to my log?

like image 647
Franck Anso Avatar asked Sep 03 '25 13:09

Franck Anso


1 Answers

For versions before 2.x, You have to create your own implementation of a SpanLogger. The easiest way will be to extend the Slf4jSpanLogger and provide your own code to add / update and remove the entries from MDC context. Then you can change your logging pattern and that way your logs will contain what they need.

like image 130
Marcin Grzejszczak Avatar answered Sep 05 '25 14:09

Marcin Grzejszczak