I have one app "live" that connects to a number of hardware audio encoders via ShoutCast and restreams them. I have another app "vod" serving content from the filesystem via HLS.
In the former app, none of the ShoutCastReceiver messages are logged to the app-specific logs and instead all end up in the server logs. That means that if any device goes offline, the server logs get spammed with a ShoutCastReceiver.internalConnect info message and a MediaCasterConnection.connect: Failed to connect error message about once a second for every device that's unreachable. That means the server logs can sometimes get thousands of live-specific messages every hour.
In the latter app, all of the HTTPStreamerAdapterCupertinoStreamer, ModuleMediaReaderNotify, HTTPStreamerSessions, MediaReaderH264Cupertino and other very much app-specific messages end up in both the server logs and the app-specific logs. That means the server logs get thousands of vod-specific messages every hour.
What I've tried to do is use a RewriteAppender or do something with a Filter attached to the root Appenders (serverError, serverAccess, etc.), but in both cases I'm only able to prevent messages to the server logs. I can't figure out how to correctly intercept and redirect such messages, and the WMSLogger and WMSLoggerFactory classes appear to behave very differently from Logger and LoggerFactory.
How would I go about making rules for getting log messages to their appropriate logs?