OutputSelector
能够将一条输入流拆分为多个输出流,例如常见的日志流,根据日志级别拆分,就可以通过OutputSelector
实现。
可以通过一下代码,实现根据日志级别拆分日志流。
public class LogSelector implements OutputSelector<String> {
@Override
public Iterable<String> select(final String message) {
if (message 为 ERROR 级别日志) {
return Collections.singleton("ERROR");
}
if (message 为 INFO 级别日志) {
return Collections.singleton("INFO");
}
...
return Collections.singleton("unknown");
}
}
final SplitStream<String> split = inputStream.split(new LogSelector());
final DataStream<String> errorStream = split.select("ERROR");