Some users want to write the different types of messages from certain sensors (such as GPSes) into different files. A more general solution would be to have a Writer that takes a map of pattern:Writer. You could hand it a mess of ComposedWriters that did whatever specific processing you wanted for each match, but a PatternLogWriter is much simpler: all writers share all the same parameters except filebase.
Some users want to write the different types of messages from certain sensors (such as GPSes) into different files. A more general solution would be to have a Writer that takes a map of pattern:Writer. You could hand it a mess of ComposedWriters that did whatever specific processing you wanted for each match, but a PatternLogWriter is much simpler: all writers share all the same parameters except filebase.