But MDC is extremely useful for "slicing and dicing" as that answer says -- and for us the ability to tag an entire request's logging with a user ID or an IP address or other, similar, concern is far more important than being able to filter on different logging "types" (markers).
So, I think the takeaway here is that some people will want markers, some will want MDC, some will want both, and some won't care about either.
Markers affect the API directly, because they are passed into the error(), warn(), whatever calls. Given that c.t.l already provides variadic calls and special-cases Throwable as the first argument, I'm not sure what the API should look like for adding Markers (esp. when they are different classes for each logger implementation)?
Maybe errorm, warnm, infom, etc that treats the first argument as a Marker? How would you add that to the underlying write! without breaking any existing implementations (outside c.t.l.)?