Hi Mark! Sorry for answering after a long time.
I am curious about how the declaration order matters. My understanding is that each message will be evaluated for a match on each log statement in the order that they appear in the file and only when it hits a log statement with a final flag will it stop attempting to match. Is that correct? Yes. :) As Fabien mentioned, a "fallback" log path would be need to not drop unprocessed log messages.
... it seems like to me that if they aren’t different it would be easier to do multiple log statements if generated dynamically. A config with many log paths would be easy to generate, but hard to read/maintain. If you find if-else config hard to generate from code, you can use the junction/channel with final flags too. Just make sure you have a fallback channel too.
Regards, Gabor