If I issue a "dev:watch *" command and later update one of my snapshot bundles, the announcement of that change is emitted in the context of the shell that issued the command. That is, if I issue it in the Gogo ssh shell, then the "[WATCH] ..." announcement goes to that shell. If I trigger the Watch service programmatically, then the announcement goes to the system console.
Instead, I think the announcement should go to the log subsystem. The root cause is that org.apache.karaf.shell.dev.BundleWatcher uses System.out.println() to emit this message, which is routed by Gogo.