This must be a simple thing, but I am not getting it.

I have a marker, say "performance" that I use when logging. Also, I often use isDebugEnabled() etc. when log messages become expensive to build.

Now I want to configure logback that I can do these two things:

1) Log all statements in Logger foo.Bar that are debug or higher and use the marker "performance"

2) Log all statements across all Loggers that use the marker "performance"

To achieve 1) I tried this:

<turboFilter class="ch.qos.logback.classic.turbo.MarkerFilter">
  <Marker>index-control-flow</Marker>
  <OnMatch>ACCEPT</OnMatch>
</turboFilter>

<logger name="foo.Bar" level="DEBUG"/>
Then also all log messages that are not tagged with this marker appear in the log.

To achieve 2) I tried omitting the logger line above and got only log messages with the marker, however, all log messages protected by a check of isDebugEnabled() are omitted.

I must be missing a general concept here.

Thanks in advance,

Robert